按字符串排序

时间:2014-01-25 15:22:32

标签: sql

在SQL中,是否可以通过字符串而不是升序/降序来命令查询,如下所示?

Select * From people ORDER BY names (john, steve, bob, bill)

2 个答案:

答案 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返回的较低数字