我需要从一行中的多个列中获取最大值。 该行看起来像这样:
Col1 || Col2 || Col3 || Col4 ||
100 || 120 || 130 || 140 ||
100 || 130 || 130 || 140 ||
100 || 140 || 130 || 140 ||
我需要获取这些列的最大值,其中col2 = 120 这样结果将作为col4值返回,即140
答案 0 :(得分:1)
由于它只有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
答案 1 :(得分:1)
这是使用MSSQL Server
SELECT
(
SELECT Max(v)
FROM (VALUES (Col1), (Col2), (Col3),(Col4)) AS value(v)
) as [MaxDate]
FROM [TableName]
WHER Col2 = 120