Sql server 2008 Sql命令对存储的数据进行排序
结果是Sql server 2008 Sql命令对存储的数据进行排序,sql-server-2008,Sql Server 2008,结果是 select DISTINCT Month, Code from SalaryRecord order by Code ASC 但是我想把Jan和Feb按月份升序排列我假设month列是字符串类型(VARCHAR(n)),所以它是按字符串排序的-在这种情况下,顺序是完全正确的(F在西欧字母表中位于J之前) 您的表中是否也有月份作为数字 如果是这样,您可以按该数值进行订购: Feb Jan Jan 或者您可能有一个日期(或者日期时间,日期时间2列),您可以按以下顺序订购: SELE
select DISTINCT Month, Code
from SalaryRecord
order by Code ASC
但是我想把
Jan
和Feb
按月份升序排列我假设month
列是字符串类型(VARCHAR(n)
),所以它是按字符串排序的-在这种情况下,顺序是完全正确的(F
在西欧字母表中位于J
之前)
您的表中是否也有月份作为数字
如果是这样,您可以按该数值进行订购:
Feb
Jan
Jan
或者您可能有一个日期
(或者日期时间,日期时间2
列),您可以按以下顺序订购:
SELECT DISTINCT
Month, Code
FROM
dbo.SalaryRecord
ORDER BY
NumericalMonth, Code ASC
如果你一无所有,你可以很容易地进行分类,那么你需要这个丑陋的大箱子:
SELECT DISTINCT
Month, Code
FROM
dbo.SalaryRecord
ORDER BY
MONTH(YourDateColumn), Code ASC
试试这个代码
SELECT DISTINCT
Month, Code
FROM
dbo.SalaryRecord
ORDER BY
CASE MONTH
WHEN 'Jan' THEN 1
WHEN 'Feb' THEN 2
WHEN 'Mar' THEN 3
WHEN 'Apr' THEN 4
WHEN 'May' THEN 5
WHEN 'Jun' THEN 6
WHEN 'Jul' THEN 7
WHEN 'Aug' THEN 8
WHEN 'Sep' THEN 9
WHEN 'Oct' THEN 10
WHEN 'Nov' THEN 11
WHEN 'Dec' THEN 12
ELSE 999
END
itz为varchar,代码为员工代码;我希望它能按月安排。我没有月作为一个数字,这个月一次又一次地重复,我还有一个主键在这个表中,叫做SalaryCode
select DISTINCT Month, Code
from SalaryRecord
order by DATEPART(mm,CAST([Month]+ ' 1900' AS DATETIME)) asc