在数据库中;有3列Name
,CreatedDate
和UpdatedDate
。
我想使存储过程获取所有行顺序的最后更新或创建日期。
这是我的示例代码。
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/