【发布时间】:2017-03-10 23:46:49
【问题描述】:
我有如下 SQL 查询:
SELECT t.range AS [Order Amount Range],
Count(*) AS [Total Orders]
FROM (SELECT CASE
WHEN totalamount BETWEEN 0 AND 49 THEN ' 0 - 49'
WHEN totalamount BETWEEN 50 AND 99 THEN ' 50 - 99'
WHEN totalamount BETWEEN 100 AND 149 THEN ' 100 - 149'
WHEN totalamount BETWEEN 150 AND 199 THEN ' 150 - 199'
WHEN totalamount BETWEEN 200 AND 249 THEN ' 200 - 249'
WHEN totalamount BETWEEN 250 AND 299 THEN ' 250 - 299'
WHEN totalamount BETWEEN 300 AND 349 THEN ' 300 - 349'
WHEN totalamount BETWEEN 350 AND 399 THEN ' 350 - 399'
WHEN totalamount BETWEEN 400 AND 449 THEN ' 400 - 449'
ELSE 'Above 500'
END AS range
FROM [order]) t
GROUP BY t.range
ORDER BY t.range
现在的问题是排序不起作用,结果以任何特定方式出现。所以第一行可能包含“0-49”范围,第二行包含“200-249”。
如何得到正常的序列?
【问题讨论】:
标签: sql sql-server tsql sorting