Como recuperar o maior valor entre múltiplas colunas em uma tabela do SQL Server

Visualizações: 5.375
Tempo de Leitura: 2 minutos

Olá leitores,
Boa noite!

Neste post vou demonstrar rapidamente como recuperar o maior valor entre múltiplas colunas em uma tabela do SQL Server. Já vi várias soluções para essa necessidade, mas será que você está utilizando a mais performática dentre elas ?

Gerando uma massa de testes

Para facilitar a visualização dos resultados, vamos criar alguns dados de teste:

Dados Originais:
SQL Server - Find MAX value from multiple columns in a SQL Server table

Resultado Esperado:
SQL Server - Find MAX value from multiple columns in a SQL Server table - Expected Result

Solução 1 – Utilizando VALUES

Solução 2 – Utilizando UNPIVOT

Solução 3 – Utilizando UNION

Teste de Performance

Após entendermos as 3 soluções propostas acima, vamos testar a performance para identificar qual é executada com o menor tempo e custo possível. Desta forma, poderemos dizer qual deve ser a melhor solução adotada para essa situação:

Solução 1
SQL Server - Find MAX value from multiple columns in a SQL Server table - Performance 1

Solução 2:
SQL Server - Find MAX value from multiple columns in a SQL Server table - Performance 2

Solução 3:
SQL Server - Find MAX value from multiple columns in a SQL Server table - Performance 3

Resultado final:
SQL Server - Find MAX value from multiple columns in a SQL Server table - Performance

Como podemos observar, a solução 1 além de ser bem pequena, é a mais performática.

Obrigado pela visita!

sql server maior valor múltiplas várias colunas de uma tabela view query Find MAX value from multiple columns in a SQL Server table

sql server maior valor múltiplas várias colunas de uma tabela view query Find MAX value from multiple columns in a SQL Server table