Найти наибольшее число из таблицы SQL?
Меня попросили найти наибольшее число из таблицы (включая все строки и столбцы) с использованием SQL.
Вот пример данных. Он должен вернуть 90 как наибольшее число.
row1 row2 row3
10 20 30
40 50 60
70 80 90
2 ответа
Вы можете легко получить этот результат, выбирая максимумы из всех столбцов, затем поворачивая один ряд максимумов в столбец и снова, получая максимум этого столбца. Этот код отражает эту логику:
--sample data you provided
declare @table table(col1 int, col2 int, col3 int)
insert into @table values (10,20,30),(40,50,60),(70,80,90)
--query reflecting above logic
select max([maxes]) from (
select max(col1) [col1],
max(col2) [col2],
max(col3) [col3]
from @table
) [Maxes] unpivot (
[maxes] for [values] in ([col1],[col2],[col3])
) as unpivoted
Это не очень многоразово, но очень ясно
DECLARE @t TABLE (row1 int,row2 int,row3 int)
INSERT INTO @t (row1,row2,row3) SELECT 10,20,30
INSERT INTO @t (row1,row2,row3) SELECT 40,50,60
INSERT INTO @t (row1,row2,row3) SELECT 70,80,90
DECLARE @Max INT
SELECT @Max=MAX(Row1) FROM @t
SELECT @Max=MAX(Row2) FROM @t WHERE (Row2>@Max OR @Max IS NULL)
SELECT @Max=MAX(Row3) FROM @t WHERE (Row3>@Max OR @Max IS NULL)
SELECT @Max AS [Max]