我需要從單個行中的多個列中獲取最大值。 行看起來是這樣的:連續多列的SQL MAX
Col1 || Col2 || Col3 || Col4 ||
100 || 120 || 130 || 140 ||
100 || 130 || 130 || 140 ||
100 || 140 || 130 || 140 ||
我需要獲取這些列的最大值,其中COL2 = 120 使返回結果爲COL4值是140
我需要從單個行中的多個列中獲取最大值。 行看起來是這樣的:連續多列的SQL MAX
Col1 || Col2 || Col3 || Col4 ||
100 || 120 || 130 || 140 ||
100 || 130 || 130 || 140 ||
100 || 140 || 130 || 140 ||
我需要獲取這些列的最大值,其中COL2 = 120 使返回結果爲COL4值是140
因爲它是唯一的4列,一個方法是簡單地使用案例:
SELECT CASE WHEN Col1 >= Col2 AND Col1 >= Col3 AND Col1 >= Col4 THEN Col1
WHEN Col2 >= Col1 AND Col2 >= Col3 AND Col2 >= Col4 THEN Col2
WHEN Col3 >= Col1 AND Col3 >= Col2 AND Col3 >= Col4 THEN Col3
WHEN Col4 >= Col1 AND Col4 >= Col2 AND Col4 >= Col3 THEN Col4
END As Max
FROM TableName
WHERE Col2 = 120
這是利用MSSQL服務器
SELECT
(
SELECT Max(v)
FROM (VALUES (Col1), (Col2), (Col3),(Col4)) AS value(v)
) as [MaxDate]
FROM [TableName]
WHER Col2 = 120
'value(v)'是什麼意思?那是什麼樣的別名? – Greg
用樣本數據添加更多行,並指定預期結果。 – jarlh
您正在使用哪些DBMS? –