No PostgreSQL, o
GREATEST()
A função retorna o maior (ou maior) valor de uma lista de qualquer número de expressões. O
GREATEST()
A função não está incluída no padrão SQL, mas é uma extensão popular que muitos dos principais RDBMSs suportam. Sintaxe
GREATEST(value [, ...])
Isso significa que podemos passar um ou mais valores para a função.
Exemplo
Aqui está um exemplo simples para demonstrar:
SELECT GREATEST( 3, 15, 7 );
Resultado:
15
Cordas
Aqui está um exemplo onde todos os argumentos são strings:
SELECT GREATEST( 'Bear', 'Zebra', 'Ant' );
Resultado:
Zebra
Datas
Aqui está uma comparação de strings de data:
SELECT GREATEST(date '2027-01-01', date '2027-12-31');
Resultado:
2027-12-31
Tipo de dados comum
As expressões devem ser todas conversíveis para um tipo de dados comum. O resultado usará esse tipo.
Se as expressões não puderem ser convertidas em um tipo de dados comum, ocorrerá um erro:
SELECT GREATEST( 3, 'Fifteen', 7 );
Resultado:
ERROR: invalid input syntax for type integer: "Fifteen" LINE 1: SELECT GREATEST( 3, 'Fifteen', 7 ); ^
Valores nulos
Os valores nulos são ignorados, a menos que todas as expressões sejam
null
. Se todas as expressões forem null
, então null
é retornado:\pset null '<null>'
SELECT
GREATEST( 3, null, 7 ),
GREATEST( null, null, null );
Resultado:
greatest | greatest ----------+---------- 7 | <null>
Por padrão, o psql retorna a string vazia em valores nulos. Na primeira linha deste exemplo, defino valores nulos para a saída
<null>
para que seja mais fácil para nós ver o resultado nulo. Argumentos ausentes
Chamando
GREATEST()
sem nenhum argumento resulta em um erro:SELECT GREATEST();
Resultado:
ERROR: syntax error at or near ")" LINE 1: SELECT GREATEST(); ^
No entanto, podemos passar um argumento sem erro:
SELECT GREATEST( 1 );
Resultado:
1