※ 引述《DrGod (跪求水桶)》之銘言:
: 有一個欄位 rank
: 內容是 排長,連長.......軍長 之類
: 能不能按軍長>師長>......>排長 這樣排序
: 我試過再加一個欄位 rankValue,然後按不同rank
: 用字母,軍長=a 師長=b , order by rankValue 可以
: 但是比較麻煩
: 想請教能否直接排序
: 感謝
我使用SQL Server 2005做測試
有一資料表 T_TABLE 有一欄位RANK_NM 資料如下
RANK_NM
上校
中尉
上將
上尉
少將
中校
中將
少校
少尉
現在要依階級由大到小排列,SQL語法:
SELECT * FROM T_TABLE
ORDER BY
CASE
WHEN RANK_NM='上將' THEN 1
WHEN RANK_NM='中將' THEN 2
WHEN RANK_NM='少將' THEN 3
WHEN RANK_NM='上校' THEN 4
WHEN RANK_NM='中校' THEN 5
WHEN RANK_NM='少校' THEN 6
WHEN RANK_NM='上尉' THEN 7
WHEN RANK_NM='中尉' THEN 8
WHEN RANK_NM='少尉' THEN 9
END
就可以呈現下面的順序
RANK_NM
上將
中將
少將
上校
中校
少校
上尉
中尉
少尉
這樣是不用新加欄位 不知道這樣是否對你有幫助?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.194.80.177