通过字符串比较的结果排序SQL SELECT

时间:2015-11-12 10:10:45

标签: sql sql-server tsql

我有一个包含两个字符串列的表IDLANGUAGE。语言可以是CYMENGGAE之一。

从表中选择数据时,我想按语言列进行排序,在结果开头放置指定的语言,以后用其他语言排序。

说我有数据

+===+=====+
+ 1 + CYM +
+ 2 + GAE +
+ 3 + ENG +
+ 4 + CYM +
+===+=====+

我希望输出为

+===+=====+
+ 3 + ENG +
+ 1 + CYM +
+ 2 + GAE +
+ 4 + CYM +
+===+=====+

我如何做相同的

SELECT ID, LANGUAGE 
FROM TABLE 
ORDER BY (LANGUAGE = 'ENG'), ID

1 个答案:

答案 0 :(得分:3)

您可以使用CASE WHEN确保ENG成为第一个:

SELECT ID, LANGUAGE
FROM your_table
ORDER BY 
  CASE LANGUAGE WHEN 'ENG' THEN 0
                ELSE 1
  END ASC;
  -- ,ID ASC -- if needed

LiveDemo