Sql Command用于在存储数据时对其进行排序

时间:2014-01-24 11:27:35

标签: sql-server-2008

select DISTINCT Month, Code 
from SalaryRecord 
order by Code ASC

结果是

Feb
Jan
Jan

但我希望按月升序排列JanFeb

2 个答案:

答案 0 :(得分:0)

我假设Month列是字符串类型(VARCHAR(n)),因此它被排序为字符串 - 排序完全正确(F在{{1}之前出现在那种情况下,在西欧字母表中)。

您的表中是否还有数字月份?

如果是这样,您可以通过该数值来订购:

J

或者您可能有 SELECT DISTINCT Month, Code FROM dbo.SalaryRecord ORDER BY NumericalMonth, Code ASC (或DATEDATETIME列?),您可以按顺序排序:

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