繁体   English   中英

使用CASE后无法按超过1列对sql中的结果进行排序

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM