在ORDER BY中测试NULL

时间:2015-10-23 10:07:30

标签: mysql sql

在数据库中;共有3列,NameCreatedDateUpdatedDate。 我想创建存储过程以获取所有行命令上次更新或创建日期。

这是我的示例代码。

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

但收到了错误的结果。有什么想法吗?

1 个答案:

答案 0 :(得分:6)

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