Maciej Los
В зависимости от того, чего вы пытаетесь достичь...
1) Если вы хотите получить максимум всех столбцов во всех строках:
SELECT MAX(C123) AS MaxValue
FROM (
SELECT C1 AS C123
FROM @tmp
UNION ALL
SELECT C2 AS C123
FROM @tmp
UNION ALL
SELECT C3 AS C123
FROM @tmp
) AS T
--returns 1000
2) Если вы хотите получить максимальное значение каждого столбца (в одной строке):
SELECT MAX(C1) AS C1Max, MAX(C2) AS C2Max, MAX(C3) AS C3Max
FROM @tmp
-- returns:
--200 1000 780
3) Если вы хотите получить максимальное значение каждого столбца (в строках с именами столбцов):
SELECT ColName, MAX(ColValue) AS MaxValueOfCol
FROM (
SELECT ColName, ColValue
FROM (
SELECT C1, C2, C3
FROM @tmp
) AS PVT
UNPIVOT(ColValue FOR ColName IN([C1], [C2], [C3])) AS UNPVT
) AS T
GROUP BY ColName
--returns:
--C1 200
--C2 1000
--C3 780
Примечание: заменить
@tmp
с именем таблицы в вашей базе данных.