在数据库中;有3列NameCreatedDateUpdatedDate
我想使存储过程获取所有行顺序的最后更新或创建日期。

这是我的示例代码。

SELECT * FROM tbl_name
ORDER BY CASE WHEN UpdatedDate != null THEN UpdatedDate ELSE CreatedDate END desc


但是收到了错误的结果。任何想法?

最佳答案

null比较时,需要is运算符。

SELECT * FROM tbl_name
ORDER BY CASE WHEN UpdatedDate is not null
              THEN UpdatedDate
              ELSE CreatedDate
         END desc


或者您可以使用

SELECT *
FROM tbl_name
ORDER BY coalesce(UpdatedDate, CreatedDate) desc

关于mysql - 在ORDER BY中测试NULL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33299798/

10-10 05:30