PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Função GREATEST() no PostgreSQL


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