select DISTINCT Month, Code
from SalaryRecord
order by Code ASC
結果是因爲它是存儲
Feb
Jan
Jan
,但我想Jan
和Feb
逐月遞增順序排列
select DISTINCT Month, Code
from SalaryRecord
order by Code ASC
結果是因爲它是存儲
Feb
Jan
Jan
,但我想Jan
和Feb
逐月遞增順序排列
我假設Month
列是一個字符串類型( VARCHAR(n)
),因此它被命令爲一個字符串 - 並且排序非常正確(F
在西歐字母中出現在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
:
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
其不工作 – user3201772
試試這個代碼,
select DISTINCT Month, Code
from SalaryRecord
order by DATEPART(mm,CAST([Month]+ ' 1900' AS DATETIME)) asc
伊茨爲VARCHAR和代碼是員工代碼;我希望它能安排月份。我沒有月份作爲一個數字,月份是一次又一次地重複,我也有我的主鍵在這張表SalaryCode – user3201772