我正在尝试按added_date
选择行顺序,或者如果行已更新,则按updated_date
排序。
默认更新日期为Null
。
对于(dd-mm-yy
)中给出的上述表格日期。
对于下表,第一行以2 feb添加,第二行以1 feb添加,因此使用,
select * from tablename order by added_date desc;
我获取了最新的行,但如果更新了任何行,则此更新的行将成为最新的行。
对于第二行,在第1个feb添加了行,但它在第3个feb更新,因此它成为最新行。
如何获取添加和更新日期的记录?
id title name added_date updated_date
1 asd rff 02-02-2013 NULL
2 fsfs rwr 01-02-2013 03-02-2012
3 ddd wwrr 30-01-2013 04-02-2013
编辑:使用MYSQL
答案 0 :(得分:4)
您没有指定您使用的RDBMS。对于Oracle,您可以尝试:
SELECT * FROM tablename ORDER BY NVL(updated_date,added_date) DESC;
SQL Server:
SELECT * FROM tablename ORDER BY ISNULL(updated_date,added_date) DESC
MySQL:
select * from tablename order by ifnull(updated_date,added_date) desc;
答案 1 :(得分:2)
尝试使用COALESCE
SELECT *
FROM tablename
ORDER BY COALESCE(updated_date, added_date) DESC
来自文档:
返回列表中的第一个非NULL值,如果没有非NULL值,则返回NULL。
答案 2 :(得分:2)
ORDER BY
CASE updated_date
WHEN NULL THEN added_date
ELSE updated_date
END
desc