Jus*_*n C 3 sql sql-server select sql-order-by
我有一个包含三个日期字段的表,一个开始日期,中期日期和结束日期.我想创建一个单一的查询来从表中获取最新的活动.在这种情况下,活动是更新日期字段的时间.
无需编写3个单独的查询,然后将我的代码中的值组合起来以获取10个最近的活动,我可以在一个查询中执行此操作.所以现在我有
SELECT TOP 10 * FROM core_table
ORDER BY [start_date] Desc
SELECT TOP 10 * FROM core_table
ORDER BY [process_date] Desc
SELECT TOP 10 * FROM core_table
ORDER BY [archive_date] Desc
Run Code Online (Sandbox Code Playgroud)
所以我想把这三个查询的结果拉到一起,根据所有三个日期获得前10个条目.
基于Itiong_sh给出的答案,它不完全相同:你可以在ORDER BY中完成
select top 10 * from core_table
order by
CASE
WHEN start_date >= process_date AND start_date >= archive_date
THEN start_date
WHEN process_date >= archive_date
THEN process_date
ELSE archive_date
END
DESC
Run Code Online (Sandbox Code Playgroud)