作者sanwind (疾风迅雷)
看板Database
标题Re: [SQL ] SQL能不能按特定需要排序
时间Thu Jan 20 22:55:08 2011
※ 引述《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