【问题标题】:SQL ORDER BY CASE + DESCSQL ORDER BY CASE + DESC
【发布时间】:2021-07-14 04:32:05
【问题描述】:

我需要分两步使用 ORDER BY CASE 对我的数据进行排序:首先,我需要使用“DESC”反转排序,然后,此排序需要按字母顺序排序

我代表这样的代码

ORDER BY
  
    CASE WHEN sort_param = 'HIGH_TO_LOW'
      THEN goal_progress DESC //reverse data
      THEN LOWER(s.title) END, //sort alphabetically
...

但由于语法错误,这不起作用

【问题讨论】:

    标签: sql graphql graphql-js


    【解决方案1】:

    我建议您将每个条件拆分为单独的case:

    ORDER BY (CASE WHEN sort_param = 'HIGH_TO_LOW' THEN goal_progress END),
            LOWER(s.title)
    

    【讨论】:

    • 我会澄清的。如果第一次排序的值相等,则需要按字母顺序排序。您的决定是否考虑到了这一点?
    • @Miltosh 。 . .我修改了答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-25
    • 2019-03-27
    • 1970-01-01
    相关资源
    最近更新 更多