quarta-feira, 2 de abril de 2014

As Funções GREATEST e LEAST

As funções GREATEST e LEAST recuperam, respectivamente, o maior e o menor valor não nulo em uma lista de valores, caso existam. São bastante úteis e, embora não sejam parte do padrão sql, são compatíveis com funções similares fornecidas por outros SGBDs.

Saliento que para recuperar o maior e menor valores em colunas de uma tabela, devem ser utilizadas as funções de agregação MAX e MIN, respectivamente.

* Exemplos

1 - Exemplo básico

SELECT GREATEST(1,2);








2 - Exemplo básico com três parâmetros
 
SELECT GREATEST(1,2, 3, 4);



3 - Exemplo básico com datas

SELECT GREATEST(current_date,current_date + 10);

4 - Exemplo básico com cálculo simples

SELECT GREATEST(1*2,2*1);



5 - Exemplo com valor nulo ignora o nulo

SELECT GREATEST(10,11,null);

6 - Exemplo gerando valor nulo

SELECT GREATEST(null,null);

7- Exemplo com dados textuais

SELECT GREATEST('ANA','CLA','AVA');



8 - Exemplo com timestamps

SELECT GREATEST(timestamp '2014-04-02 14:30:00', timestamp '2014-04-02 14:30:01');





9 - Exemplos do uso de LEAST

SELECT LEAST(1,2, 3, 4);
SELECT LEAST(current_date,current_date + 10);
SELECT LEAST(1*2,2*1);
SELECT LEAST(10, 11, null);
SELECT LEAST('ANA','CLA','AVA');
SELECT LEAST(timestamp '2014-04-02 14:30:00', timestamp '2014-04-02 14:30:01');

10 - Exemplo de comparação entre campos de uma mesma tabela

CREATE TEMP TABLE NOTA (codigo REAL, nota1 REAL, nota2 REAL, nota3 REAL);
INSERT INTO NOTA VALUES (1,10,9,8);
INSERT INTO NOTA VALUES (2,9.5,8,8.5);
INSERT INTO NOTA VALUES (3,1,2,3);

SELECT codigo, GREATEST(nota1, nota2, nota3) AS MAIOR_NOTA, LEAST(nota1, nota2, nota3) AS MENOR_NOTA FROM NOTA;

Nenhum comentário: