Select maior valor entre duas colunas

SQL

Oracle

28/02/2019

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.
Ricardo Atanásio

Ricardo Atanásio

Curtidas 0

Respostas

Ana Lichirgu

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!
GOSTEI 0
Daniel Araújo

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...

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

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
GOSTEI 0
POSTAR