在查询中按列进行多个排序

我有这个查询:

SELECT T1.* 
FROM TABLE1 
LEFT JOIN TABLE2 T2 ON T2.ID = T1.ID
ORDER BY T1.DATE DESC, T2.DATE DESC;

在上面的查询中,我使用来自不同表的多个排序列。这两个按列排序都是timestamp数据类型。我的要求是:我需要对查询的日期和时间(最新)进行排序。例如,如果T1.DATE是最新的,那么我需要根据T1.DATE对查询进行排序,否则需要根据T2.DATE进行排序。

我该如何处理该ORDER BY条款?

同样,我可能也有TABLE3。如果我加入该表,则还必须按TABLE3的DATE排序。有人有什么解决方案吗?

Used_By_Already

您可以比较日期列,使用greatest()返回每行所有参数的最大值:

SELECT T1.* FROM TABLE1 
LEFT JOIN TABLE2 T2 ON T1.ID = T2.ID
LEFT JOIN TABLE2 T3 ON T2.ID = T3.ID
ORDER BY greatest(T1.DATE, T2.DATE, T3.DATE) DESC;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章