[英]Cannot sort results in sql by more than 1 column after using CASE
以前,我的SQL代码看起来很完美(它选择了所有符合条件的行,然后首先按column_5排序,或者按第五个字段排序,然后按column_6排序)
SELECT *
FROM table
WHERE column_2="blah" AND column_4=34
ORDER BY column_5,column_6
但是,然后,我希望将特定的结果放在首位,因此我使用了CASE命令,但是当我这样做时,我无法再对其余结果进行超过1列的排序。 例如,以下代码将起作用:
SELECT *
FROM table
WHERE column_2="blah" AND column_4=34
ORDER BY CASE WHEN column_3= 'blah' THEN '1'
ELSE column_4 end
但这不起作用=>
SELECT *
FROM table
WHERE column_2="blah" AND column_4=34
ORDER BY CASE WHEN column_3= 'blah' THEN '1'
ELSE column_4, column_2 end
我在column_2
附近的逗号附近收到语法错误。 就像我执行CASE命令后无法按多列排序。 有没有人我做错了什么以及如何解决?
SELECT *
FROM your_table
ORDER BY CASE WHEN column_3 = 'blah'
THEN 1
ELSE 2
END,
column_4,
column_2
SELECT *
FROM table
WHERE column_2 = 'blah' AND column_4 = 34
ORDER BY
CASE WHEN column_3 = 'blah'
THEN column_5
ELSE column_6
END,
column_4, column_2
;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.