select DISTINCT Month, Code
from SalaryRecord
order by Code ASC
结果是
Feb
Jan
Jan
但我希望按月升序排列Jan
和Feb
答案 0 :(得分:0)
我假设Month
列是字符串类型(VARCHAR(n)
),因此它被排序为字符串 - 排序完全正确(F
在{{1}之前出现在那种情况下,在西欧字母表中)。
您的表中是否还有数字月份?
如果是这样,您可以通过该数值来订购:
J
或者您可能有 SELECT DISTINCT
Month, Code
FROM
dbo.SalaryRecord
ORDER BY
NumericalMonth, Code ASC
(或DATE
,DATETIME
列?),您可以按顺序排序:
DATETIME2
如果你什么都没有,你可以很容易地排序 - 好吧,那么你需要这个丑陋的大SELECT DISTINCT
Month, Code
FROM
dbo.SalaryRecord
ORDER BY
MONTH(YourDateColumn), Code ASC
:
CASE
答案 1 :(得分:0)
试试这段代码,
select DISTINCT Month, Code
from SalaryRecord
order by DATEPART(mm,CAST([Month]+ ' 1900' AS DATETIME)) asc