As funcoes GREATEST e LEAST recuperam, respectivamente, o maior e o menor valor nao nulo em uma lista de valores, caso existam. Sao bastante uteis e, embora nao sejam parte do padrao sql, sao compativeis com funcoes similares fornecidas por outros SGBDs.Saliento que para recuperar o maior e menor valores em colunas de uma tabela, devem ser utilizadas as funcoes de agregacao MAX e MIN, respectivamente.* Exemplos1 - Exemplo basicoSELECT GREATEST(1,2);2 - Exemplo basico com tres parametros SELECT GREATEST(1,2, 3, 4);3 - Exemplo basico com datasSELECT GREATEST(current_date,current_date + 10);4 - Exemplo basico com calculo simples SELECT GREATEST(1*2,2*1);5 - Exemplo com valor nulo ignora o nuloSELECT GREATEST(10,11,null);6 - Exemplo gerando valor nuloSELECT 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 LEASTSELECT 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 comparacao entre campos de uma mesma tabelaCREATE 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; PgBR 2013. Eu estava la.Foi muito bom! REcomendo a PgBR 2014! Voce ja utilizou a clausula SET em um comando INSERT? No postgresql, com certeza, nao, pois a mesma nao esta implementada ate a versao atual, a 9.3. Esta sintaxe pode ser descrita conforme aparece abaixo: INSERT INTO nome_tabela SET coluna1 = expressao1, coluna2 = expressao2, .... ; O fato e que esta sintaxe pouco acrescentaria em termos de valor. E pouco conhecida e pouco utilizada, embora eu acredite que esteja implementada em outros SGBDs. Sua funcionalidade seria identica a do comando INSERT ja implementado, agregando possivelmente um pouco em termos de compatibilidade, embora nao me recorde de ferramentas ou sistemas que utilizem esta sintaxe nas minhas andancas. Entao porque estou comentando o fato do postgresql nao implementar esta sintaxe?Bom, justifico esta postagem por ter encontrado esta sintaxe em provas de concursos publicos, como nos exemplos abaixo. Nao sei se a clausula SET no INSERT faz parte do padrao ISO, mas nao deixa de ser uma limitacao, ainda que bem pequena. Exemplos: Prova:FCC - 2012 - MPE-PE - Analista Ministerial - InformaticaDisciplina:Banco de Dados | Assuntos: SQL; Aposa execucao dos seguintes comandos SQL: CREATETABLE livros (id INT, nome TEXT); INSERTINTO livros VALUES(1,'livro 1'); INSERTINTO livros (2,'livro 2'); INSERTINTO livros SET id=3,nome='livro 3'; SELECTid FROM livros; Oresultado da consulta para a coluna id sera a)3, apenas. b) 1, apenas. c) 1, 2 e 3. d) 2 e 3, apenas. e) 1 e 3,apenas.Prova:FCC - 2012 - MPE-PE - Tecnico Ministerial - InformaticaDisciplina:Banco de Dados | Assuntos: SQL; Analiseos seguintes comandos em SQL:CREATETABLE nota (id INT PRIMARY KEY,data TEXT,valor REAL); INSERTINTO nota SET id=1,data='01012012',valor=15.5; INSERTINTO nota SET id=1,data='03022012',valor=11.5; INSERTINTO nota SET id=2,data='01042012',valor=25.5; INSERTINTO nota SET id=20,data='10062012',valor=12.5; SELECTCOUNT(*) FROM nota WHERE valor < 20; Oresultado para a consulta efetuada sera: a)12.5 b) 3 c) 11.5, 12.5 e 15.5 d) 2 e) 12.5 e 15.5 E com