resum.: i denne vejledning lærer du om Postgres .l COALESCE-funktionen, der returnerer det første ikke-null-argument. Du lærer, hvordan du anvender denne funktion i SELECT-erklæring for at håndtere null-værdier effektivt.
PostgreSQL hånd i hånd funktion syntaks
syntaks af COALESCE
funktion er som følger:
Code language: SQL (Structured Query Language) (sql)
COALESCE
funktionen accepterer et vilkårligt antal argumenter. Det returnerer det første argument, der ikke er null., Hvis alle argumenter er null, returnerer funktionen COALESCE
null.
funktionenCOALESCE
evaluerer argumenter fra venstre mod højre, indtil den finder det første ikke-null-argument. Alle de resterende argumenter fra det første ikke-null argument evalueres ikke.
COALESCE
funktion giver samme funktionalitet som NVL
eller IFNULL
funktion, der leveres af SQL-standarden. MySQL har IFNULL funktion, mens Oracle giver NVL
funktion.,
Se følgende eksempler:
Code language: SQL (Structured Query Language) (sql)
Code language: SQL (Structured Query Language) (sql)
Vi ofte brug COLAESCE
funktion til at erstatte en standardværdi for null-værdier, når vi forespørge data. For eksempel ønsker vi at vise uddraget fra et blogindlæg, hvis uddraget ikke er angivet, kan vi bruge de første 150 tegn i af indholdet af indlægget., For at opnå dette, kan vi bruge COALESCE
funktion som følger:
Code language: SQL (Structured Query Language) (sql)
PostgreSQL hånd i hånd eksempel
Lad os tage et kig på et eksempel på brug af COALESCE
funktion. Først opretter vi en tabel, der hedder elementer ved hjælp af CREATE TABLE-sætning som følger:
Code language: SQL (Structured Query Language) (sql)
Der er fire felter i items
tabel:
- id: den primære nøgle, der identificerer varen i de elementer, tabel.
- produkt: produktnavnet.
- pris: prisen på produktet.,
- Rabat: rabatten på produktet.
for det Andet, at vi indsætter nogle poster i de elementer, tabel ved hjælp af INDSÆT resultatopgørelsen som følger:
Tredje, vi forespørgslen netto priser af produkter ved hjælp af følgende formel:
Code language: SQL (Structured Query Language) (sql)
Code language: SQL (Structured Query Language) (sql)
Hvis du ser på fjerde række, du vil bemærke, at netto pris af produktet D
er null hvilket ikke synes korrekt., Spørgsmålet er rabatten på produktet D
er null, derfor når vi tager nulværdien for at beregne nettoprisen, returnerer Postgres .l null.
få den rigtige pris, vi skal antage, at hvis rabatten er null, er den nul., Så kan vi bruge COALESCE
funktion som følger:
Code language: SQL (Structured Query Language) (sql)
Nu er det netto pris af produktet D
er 500
fordi vi bruger nul i stedet for null-værdi, når vi beregnet netto pris.
udover at bruge funktionen COALESCE
, kan du bruge SAGSUDTRYKKET til at håndtere null-værdierne i dette tilfælde. Se følgende forespørgsel, der bruger CASE
udtryk for at opnå det samme resultat ovenfor.,
Code language: SQL (Structured Query Language) (sql)
i forespørgslen ovenfor siger vi, hvis rabatten er null, så brug nul (0) ellers brug rabatværdi til i det udtryk, der beregner nettoprisen.
med hensyn til ydeevne er COALESCE
funktion og SAGSUDTRYK de samme. Vi foretrækker COALESCE
funktion end CASE
udtryk, fordi COALESCE
funktion gør forespørgslen kortere og nemmere at læse.
i denne vejledning har du lært, hvordan du bruger funktionen COALESCE
til at erstatte null-værdier i forespørgslen.,
- var denne vejledning nyttig ?
- YesNo
Leave a Reply