Найти наибольшее число из таблицы 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]
Другие вопросы по тегам