PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

LEAST() Funzione in PostgreSQL

In PostgreSQL, il LEAST() La funzione restituisce il valore più piccolo da un elenco di qualsiasi numero di espressioni.

Il LEAST() La funzione non è inclusa nello standard SQL, ma è un'estensione popolare supportata da molti dei principali RDBMS.

Sintassi

LEAST(value [, ...])

Ciò significa sostanzialmente che possiamo passare uno o più valori alla funzione.

Esempio

Ecco un semplice esempio da dimostrare:

SELECT LEAST( 5, 2, 9 );

Risultato:

2

Tipo di dati comune

Le espressioni devono essere tutte convertibili in un tipo di dati comune. Il risultato utilizzerà questo tipo.

Se le espressioni non possono essere convertite in un tipo di dati comune, si verifica un errore:

SELECT LEAST( 5, 'Two', 9 );

Risultato:

ERROR:  invalid input syntax for type integer: "Two"
LINE 1: SELECT LEAST( 5, 'Two', 9 );
                         ^

Stringhe

L'esempio precedente non vuole suggerire che non possiamo usare le stringhe. È semplicemente per mostrare che non possiamo convertire i tipi di dati.

Per dimostrare, ecco un esempio in cui tutti gli argomenti sono stringhe:

SELECT LEAST( 'Cat', 'Dog', 'Aardvark' );

Risultato:

Aardvark

Date

Ecco un confronto delle stringhe di data:

SELECT LEAST(date '2030-01-01', date '2030-12-31');

Risultato:

2030-01-01

Valori Nulli

I valori Null vengono ignorati a meno che tutte le espressioni non siano null . Se tutte le espressioni sono null , quindi null viene restituito:

\pset null '<null>'
SELECT 
    LEAST( 5, null, 9 ),
    LEAST( null, null, null );

Risultato:

 least | least  
-------+--------
     5 | <null>

Per impostazione predefinita, psql restituisce la stringa vuota su valori null. Nella prima riga di questo esempio ho impostato valori null per l'output <null> in modo che ci sia più facile vedere il risultato nullo.

Argomenti mancanti

Chiamando LEAST() senza alcun argomento genera un errore:

SELECT LEAST();

Risultato:

ERROR:  syntax error at or near ")"
LINE 1: SELECT LEAST();
                     ^

Tuttavia, possiamo passare un argomento senza errori:

SELECT LEAST( 1 );

Risultato:

1