Select maior valor entre duas colunas
Boa noite!
Tenho uma tabela com a estrutura Referência valor1 valor2 e preciso fazer uma consulta que retorna Referência e o maior valor entre valor1 e valor2.
Tenho uma tabela com a estrutura Referência valor1 valor2 e preciso fazer uma consulta que retorna Referência e o maior valor entre valor1 e valor2.
Ricardo Atanásio
Curtidas 0
Respostas
Ana Lichirgu
28/02/2019
Bom dia! Coloque no select a função max...tipo max(valor1), max(valor2) que deve funcionar.
Espero ter ajudado!
Espero ter ajudado!
GOSTEI 0
Daniel Araújo
28/02/2019
Bom dia Ricardo!
Não tenho experiência com Oracle, mas sei como fazer no SQL Server. Vê se dá para adaptar...
Não tenho experiência com Oracle, mas sei como fazer no SQL Server. Vê se dá para adaptar...
CREATE TABLE TESTE( REFERENCIA VARCHAR(10), VALOR_1 DECIMAL(10, 2), VALOR_2 DECIMAL(10, 2) ); GO INSERT INTO TESTE VALUES ('REF_1', 10, 20); INSERT INTO TESTE VALUES ('REF_2', 40, 30); GO SELECT REFERENCIA, CASE WHEN VALOR_1 > VALOR_2 THEN VALOR_1 ELSE VALOR_2 END AS MAIOR_VALOR FROM TESTE;
GOSTEI 0
Ricardo Pestana
28/02/2019
Bom dia Ricardo,
Tenta assim...
select referencia, case when valor1 > valor2 then valor1 when valor2 > valor then valor2 else 0 end maiorValor from suatabela;
outra coisa se valor1 ou valor2 podem ter valor nulo, vc precisa testar para não obter algum resultado indesejado.... use a função nvl() para substituir o valor nulo por 0 (ou qq outro valor q desejar)
select referencia, case when nvl(valor1, 0) > nvl(valor2,0) then valor1 when nvl(valor2, 0) > nvl(valor1, 0) then valor2 else 0 end maiorValor from suatabela;
abraço
Tenta assim...
select referencia, case when valor1 > valor2 then valor1 when valor2 > valor then valor2 else 0 end maiorValor from suatabela;
outra coisa se valor1 ou valor2 podem ter valor nulo, vc precisa testar para não obter algum resultado indesejado.... use a função nvl() para substituir o valor nulo por 0 (ou qq outro valor q desejar)
select referencia, case when nvl(valor1, 0) > nvl(valor2,0) then valor1 when nvl(valor2, 0) > nvl(valor1, 0) then valor2 else 0 end maiorValor from suatabela;
abraço
GOSTEI 0