我在日期型別的表中有兩列(比如 Permissioned_on_Ques1、Permissioned_on_Ques2)。我想在兩列的最新更新日期對表格進行排序。如果兩個日期相等,它應該選擇第一列。
Permissioned_on_Ques1 Permissioned_on_Ques2
31 Mar 2022 04:17:33 31 Mar 2022 04:17:33
30 Mar 2022 06:25:09 25 Feb 2022 03:35:43
uj5u.com熱心網友回復:
您可以使用greatest函式查找兩個日期中較大的一個并將其用于order by:
order by greatest(Permissioned_on_Ques1, Permissioned_on_Ques2) desc
uj5u.com熱心網友回復:
嘗試:
SELECT
Permissioned_onQues1,
Permissioned_onQues2
FROM
yourTableName
ORDER BY
CASE WHEN Permissioned_onQues1 = Permissioned_onQues2
THEN Permissioned_onQues1
ELSE Permissioned_onQues2
END
DESC
uj5u.com熱心網友回復:
如果 Permissioned_on_Ques1 和 Permissioned_on_Ques2 不是空列:
SELECT *
FROM <table>
ORDER BY GREATEST ( Permissioned_on_Ques1
, Permissioned_on_Ques2
) desc
如果列可以有空值:
SELECT *
FROM <table>
ORDER BY CASE
WHEN Permissioned_on_Ques1 IS NOT NULL
and Permissioned_on_Ques2 IS NOT NULL
THEN GREATEST
( Permissioned_on_Ques1
, Permissioned_on_Ques2
)
ELSE COALESCE
( Permissioned_on_Ques1
, Permissioned_on_Ques2
)
END desc
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/454050.html
標籤:sql PostgreSQL 排序
