我有一个包含三列的表格;第一列包含 ID,其他两列包含日期(其中最多一个为空,但我认为这不会影响任何事情)。我将如何根据哪个日期较大来订购 ID?我试过了
ORDER BY CASE
WHEN date1 > date2 THEN date1
ELSE date2
END
但这没有用。谁能帮我?此外,我看到其他人发布的所有类似问题都有它,以便查询根据第一列对结果进行排序,然后如果第一列为空,则对第二列进行排序。我是否首先必须定义每个空值?我正在通过一个完整的外连接创建这个表,所以这将是一个完全不同的问题,所以希望它可以用空值来完成。
最佳答案
我相信您的问题与当任一列为 NULL 时比较失败有关。所以,你可能需要:
ORDER BY CASE
WHEN date1 IS NULL THEN date2
WHEN date2 IS NULL THEN date1
WHEN date1 > date2 THEN date1
ELSE date2
END
关于两个不同(可能为空)列的 SQL 顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9660943/