sql >> Database >  >> RDS >> PostgreSQL

LEAST() Functie in PostgreSQL

In PostgreSQL is de LEAST() functie retourneert de kleinste waarde uit een lijst van een willekeurig aantal uitdrukkingen.

De LEAST() functie is niet opgenomen in de SQL-standaard, maar het is een populaire extensie die door veel grote RDBMS'en wordt ondersteund.

Syntaxis

LEAST(value [, ...])

Dit betekent in feite dat we een of meer waarden aan de functie kunnen doorgeven.

Voorbeeld

Hier is een eenvoudig voorbeeld om te demonstreren:

SELECT LEAST( 5, 2, 9 );

Resultaat:

2

Algemeen gegevenstype

De expressies moeten allemaal converteerbaar zijn naar een algemeen gegevenstype. Het resultaat zal dit type gebruiken.

Als de uitdrukkingen niet kunnen worden geconverteerd naar een algemeen gegevenstype, treedt er een fout op:

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

Resultaat:

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

Snaren

Het vorige voorbeeld wil niet suggereren dat we geen strings kunnen gebruiken. Het is alleen maar om te laten zien dat we gegevenstypen niet kunnen converteren.

Ter demonstratie, hier is een voorbeeld waarbij alle argumenten strings zijn:

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

Resultaat:

Aardvark

Datums

Hier is een vergelijking van datumreeksen:

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

Resultaat:

2030-01-01

Null-waarden

Null-waarden worden genegeerd, tenzij alle expressies null zijn . Als alle uitdrukkingen null zijn , dan null wordt geretourneerd:

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

Resultaat:

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

Standaard retourneert psql de lege tekenreeks voor null-waarden. In de eerste regel in dit voorbeeld stel ik null-waarden in om <null> . uit te voeren zodat we het null-resultaat gemakkelijker kunnen zien.

Ontbrekende argumenten

LEAST() . aanroepen zonder argumenten resulteert in een fout:

SELECT LEAST();

Resultaat:

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

We kunnen echter één argument foutloos doorgeven:

SELECT LEAST( 1 );

Resultaat:

1

  1. Selecteer SQL Server-databasegrootte

  2. Voorwaardelijke lead/lag-functie PostgreSQL?

  3. Hoe kap je alle tabellen in een database af met TSQL?

  4. MySQL:ALTER NEGEER TABEL UNIEK TOEVOEGEN, wat wordt afgekapt?