【问题标题】:SQL order by final result that comes from two different columnsSQL 按来自两个不同列的最终结果排序
【发布时间】:2023-01-21 07:37:35
【问题描述】:

我想要的是这样的:

浏览表中 2 列的所有值。 对于每一行:如果第 1 列中的值不为空,则选择它。否则选择第 2 列中的值。 完成后,按字母升序对结果进行排序,无论它们来自哪个列。

我试过了,但它不起作用,我什至不确定它是否应该做我想做的事:

SELECT * FROM table ORDER BY (CASE WHEN col1 IS NOT NULL THEN 1 ELSE 2 END ), col1 DESC, col2 DESC)

除了它不起作用(没有输出)这一事实之外,似乎在我想对检索到的最终值集进行排序时分别对列的值进行排序。

谢谢您的帮助。

【问题讨论】:

    标签: mysql conditional-statements sql-order-by


    【解决方案1】:

    您可以为此使用COALESCE

    SELECT COALESCE(col1, col2) 
    FROM table 
    ORDER BY COALESCE(col1, col2) 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      • 2015-09-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-02
      • 1970-01-01
      相关资源
      最近更新 更多