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

GREATEST() Funktion i PostgreSQL

I PostgreSQL er GREATEST() funktion returnerer den største (eller største) værdi fra en liste over et vilkårligt antal udtryk.

GREATEST() funktion er ikke inkluderet i SQL-standarden, men det er en populær udvidelse, som mange større RDBMS'er understøtter.

Syntaks

GREATEST(value [, ...])

Det betyder, at vi kan videregive en eller flere værdier til funktionen.

Eksempel

Her er et simpelt eksempel til at demonstrere:

SELECT GREATEST( 3, 15, 7 );

Resultat:

15

Strenge

Her er et eksempel, hvor alle argumenter er strenge:

SELECT GREATEST( 'Bear', 'Zebra', 'Ant' );

Resultat:

Zebra

Datoer

Her er en sammenligning af datostrenge:

SELECT GREATEST(date '2027-01-01', date '2027-12-31');

Resultat:

2027-12-31

Almindelig datatype

Udtrykkene skal alle kunne konverteres til en fælles datatype. Resultatet vil bruge denne type.

Hvis udtrykkene ikke kan konverteres til en almindelig datatype, opstår der en fejl:

SELECT GREATEST( 3, 'Fifteen', 7 );

Resultat:

ERROR:  invalid input syntax for type integer: "Fifteen"
LINE 1: SELECT GREATEST( 3, 'Fifteen', 7 );
                            ^

Nul-værdier

Null-værdier ignoreres, medmindre alle udtryk er null . Hvis alle udtryk er null , derefter null returneres:

\pset null '<null>'
SELECT 
    GREATEST( 3, null, 7 ),
    GREATEST( null, null, null );

Resultat:

 greatest | greatest 
----------+----------
        7 | <null>

Som standard returnerer psql den tomme streng på null-værdier. I den første linje i dette eksempel satte jeg null-værdier til output <null> så det gør det nemmere for os at se nulresultatet.

Manglende argumenter

Kalder GREATEST() uden argumenter resulterer i en fejl:

SELECT GREATEST();

Resultat:

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

Vi kan dog sende ét argument uden fejl:

SELECT GREATEST( 1 );

Resultat:

1

  1. Brug DATABASEPROPERTYEX() til at returnere databaseindstillinger i SQL Server

  2. Hvordan kører man en lagret procedure i sql server hver time?

  3. Opret forbindelse til en MySQL-server over SSH i PHP

  4. Top 5 MySQL GUI-værktøjer (gratis og betalt)