sammanfattning: i den här handledningen kommer du att lära dig om PostgreSQL COALESCE-funktionen som returnerar det första icke-null-argumentet. Du lär dig hur du använder den här funktionen i SELECT-satsen för att hantera null-värden effektivt.
PostgreSQL COALESCE function syntax
syntaxen för funktionenCOALESCE
är som följer:
Code language: SQL (Structured Query Language) (sql)
funktionenCOALESCE
accepterar ett obegränsat antal argument. Det returnerar det första argumentet som inte är null., Om alla argument är null kommer funktionen COALESCE
att returnera null.
funktionenCOALESCE
utvärderar argument från vänster till höger tills den hittar det första icke-null-argumentet. Alla återstående argument från det första icke-null-argumentet utvärderas inte.
funktionenCOALESCE
ger samma funktionalitet som funktionenNVL
ellerIFNULL
som tillhandahålls av SQL-standard. MySQL har IFNULL funktion, medan Oracle erbjuder NVL
funktion.,
se följande exempel:
Code language: SQL (Structured Query Language) (sql)
Code language: SQL (Structured Query Language) (sql)
vi använder ofta funktionen COLAESCE
för att ersätta ett standardvärde för null-värden när vi frågar data. Till exempel vill vi visa utdraget från ett blogginlägg, om utdraget inte tillhandahålls kan vi använda de första 150 tecknen i innehållet i inlägget., För att uppnå detta kan vi använda funktionenCOALESCE
enligt följande:
Code language: SQL (Structured Query Language) (sql)
PostgreSQL COALESCE exempel
låt oss ta en titt på ett exempel på att använda funktionenCOALESCE
. Först skapar vi en tabell som heter objekt med hjälp av CREATE TABLE statement enligt följande:
Code language: SQL (Structured Query Language) (sql)
det finns fyra fält i tabellenitems
:
- id: den primära nyckeln som identifierar objektet i objekttabellen.
- produkt: Produktnamn.
- pris: priset på produkten.,
- Rabatt: produktens Rabatt.
För det andra sätter vi in några poster i objekttabellen med infoga uttalande enligt följande:
För det tredje frågar vi nettopriserna för produkterna med följande formel:
Code language: SQL (Structured Query Language) (sql)
Code language: SQL (Structured Query Language) (sql)
om du tittar på den fjärde raden kommer du att märka att nettopriset för produkten D
är NULL vilket inte verkar korrekt., Problemet är rabatten för produkten D
är null, därför när vi tar null-värdet för att beräkna nettopriset returnerar PostgreSQL null.
få rätt pris, vi måste anta att om rabatten är null, är det noll., Då kan vi använda funktionen COALESCE
enligt följande:
Code language: SQL (Structured Query Language) (sql)
nu nettopriset på produkten D
är 500
eftersom vi använder noll istället för nollvärde när vi beräknade nettopriset.
förutom att använda funktionen COALESCE
kan du använda KUNDCASEUTTRYCKET för att hantera null-värdena i det här fallet. Se följande fråga som använder uttrycket CASE
för att uppnå samma resultat ovan.,
Code language: SQL (Structured Query Language) (sql)
i frågan ovan säger vi om rabatten är null, använd sedan noll (0) annars använd rabattvärde till i uttrycket som beräknar nettopriset.
När det gäller prestanda ärCOALESCE
– funktionen och KUNDCASEUTTRYCKET desamma. Vi föredrar COALESCE
– funktionen än CASE
– uttrycket eftersom COALESCE
– funktionen gör frågan kortare och lättare att läsa.
i den här handledningen har du lärt dig hur du använder funktionen COALESCE
för att ersätta null-värden i frågan.,
- var den här handledningen till hjälp ?
- YesNo
Leave a Reply