我需要查詢表,並選擇4列的值的3。我需要比較第三列和第四列的值並選擇較大的值。比較兩列的值,則選擇較大的值
例如:
column1 column2 column3 column4
hello hello 3 5
hi hi 7 1
我需要返回:
column1 column2 Hybrid
hello hello 5
hi hi 7
我一直在嘗試使用的if/else,但我似乎無法得到正確的語法
我需要查詢表,並選擇4列的值的3。我需要比較第三列和第四列的值並選擇較大的值。比較兩列的值,則選擇較大的值
例如:
column1 column2 column3 column4
hello hello 3 5
hi hi 7 1
我需要返回:
column1 column2 Hybrid
hello hello 5
hi hi 7
我一直在嘗試使用的if/else,但我似乎無法得到正確的語法
select column1, coloumn2, case when column3 < column4 then column4 else coloum3 end from table.
看起來你在這個片段中有一些拼寫/語法問題。 –
試試這個代碼:
SELECT column1, column2,
(CASE WHEN column3 > column4 THEN column3 ELSE column4 END)
FROM Table1
結果:
COLUMN1 COLUMN2 Hybrid
hello hello 5
hi hi 7
我將通過創建一個視圖啓動。
CREATE VIEW t_c
SELECT id, c1 AS c FROM t
UNION
SELECT id, c2 AS c FROM t;
然後,我會從該視圖中選擇。
SELECT id, MAX(c) FROM t_c GROUP BY id;
您可以使用CASE,但如果其中一個值是「空」,則「空」被認爲是最大的價值。
爲了解決這個問題,你可以使用GREATEST
SELECT GREATEST(column3, column4)
FROM Table1
這並不能回答這個問題。您可以[搜索類似的問題](https://stackoverflow.com/search),或參考頁面右側的相關和鏈接問題來查找答案。如果你有一個相關但不同的問題,請[提出一個新問題](https://stackoverflow.com/questions/ask),幷包含一個鏈接以幫助提供上下文。請參閱:[提問,獲得答案,不要分心](https://stackoverflow.com/tour) –
只是讓我們不要返回null:
SELECT IIF(a > b, a, COALESCE(a, b)) -- coalesce or isnull
FROM wherever
這裏有一個查詢來測試它:
with whatever as (
select null as a, 1 as b
UNION
select 1 as a, null as b
union
select 1 as a, 0 as b
union
select 0 as a, 1 as b
union
select null as a, null as b
)
select(iif(a > b, a, isnull(b, a)))
from whatever
應返回
null
1
1
1
1
如果您使用的是Oracle,您可以使用GREATEST函數。 – user1427302
「sql-server-2008」不存在'IIF',這是問題的標記。 – MatBailie
'IF/ELSE'在這裏不起作用。 – Kermit
列結果上的混合值應該是5和7是否正確? – Yaroslav