No PostgreSQL, o
LEAST()
A função retorna o menor valor de uma lista de qualquer número de expressões. O
LEAST()
A função não está incluída no padrão SQL, mas é uma extensão popular que muitos dos principais RDBMSs suportam. Sintaxe
LEAST(value [, ...])
Isso basicamente significa que podemos passar um ou mais valores para a função.
Exemplo
Aqui está um exemplo simples para demonstrar:
SELECT LEAST( 5, 2, 9 );
Resultado:
2
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 LEAST( 5, 'Two', 9 );
Resultado:
ERROR: invalid input syntax for type integer: "Two" LINE 1: SELECT LEAST( 5, 'Two', 9 ); ^
Cordas
O exemplo anterior não sugere que não podemos usar strings. É apenas para mostrar que não podemos converter tipos de dados.
Para demonstrar, aqui está um exemplo onde todos os argumentos são strings:
SELECT LEAST( 'Cat', 'Dog', 'Aardvark' );
Resultado:
Aardvark
Datas
Aqui está uma comparação de strings de data:
SELECT LEAST(date '2030-01-01', date '2030-12-31');
Resultado:
2030-01-01
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
LEAST( 5, null, 9 ),
LEAST( null, null, null );
Resultado:
least | least -------+-------- 5 | <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
LEAST()
sem nenhum argumento resulta em um erro:SELECT LEAST();
Resultado:
ERROR: syntax error at or near ")" LINE 1: SELECT LEAST(); ^
No entanto, podemos passar um argumento sem erro:
SELECT LEAST( 1 );
Resultado:
1