在SQL中,是否可以通过字符串而不是升序/降序来命令查询,如下所示?
Select * From people ORDER BY names (john, steve, bob, bill)
答案 0 :(得分:16)
在标准SQL中,您需要case
语句
Select *
From people
ORDER BY (case when names = 'john' then 1
when names = 'steve' then 2
when names = 'bob' then 3
when names = 'bill' then 4
else 5
);
某些SQL引擎有此快捷方式,但您没有提到您正在使用的数据库。
例如,在MySQL中你可以这样做:
order by field(names, 'john', 'steve', 'bob', 'bill');
答案 1 :(得分:1)
另一种方法,使用charIndex,即
ORDER BY CharIndex('|'+names+'|','|john|steve|bob|bill|')
Charindex将返回找到的名称的位置,在找到的大列表中较早的位置,由charIndex返回的较低数字