0
我正在尋找一種方法來模擬「最大」,如在Apache Derby中的各種數據庫(如H2DB(http://www.h2database.com/html/functions.html#greatest)和Oracle)中實現的。指針表示讚賞。等效於Apache Derby的SQL「最大」函數?
編輯:我只需要兩個值,以便我可以根據以前的值有條件地更新列。
我正在尋找一種方法來模擬「最大」,如在Apache Derby中的各種數據庫(如H2DB(http://www.h2database.com/html/functions.html#greatest)和Oracle)中實現的。指針表示讚賞。等效於Apache Derby的SQL「最大」函數?
編輯:我只需要兩個值,以便我可以根據以前的值有條件地更新列。
如何使用子查詢union all
並從中選擇max
?
使用Oracle語法...
SELECT MAX(p) AS "greatest"
FROM (SELECT '1' AS p
FROM dual
UNION ALL
SELECT '2'
FROM dual
UNION ALL
SELECT '3' FROM dual)
編寫自己的功能可能是做到這一點的最好辦法。對於只有兩個或三個值,您可以使用'CASE'語句脫機 –
@a_horse_with_no_name - 指出我正確的方向:「set X = CASE when X> FOO THEN X ELSE FOO END」似乎只是做了我需要;你想把你的評論變成答案嗎? –