In PostgreSQL, de COALESCE functie retourneert het eerste niet-nul argument. Het wordt over het algemeen gebruikt met het SELECT statement om effectief om te gaan met null waarden.

Syntax: COALESCE (argument_1, argument_2, …);

De COALESCE functie accepteert een onbeperkt aantal argumenten. Zij retourneert het eerste argument dat niet null is. Als alle argumenten null zijn, retourneert de COALESCE-functie null. e COALESCE-functie evalueert argumenten van links naar rechts totdat het eerste niet-nullige argument wordt gevonden. Alle overige argumenten vanaf het eerste niet-nule argument worden niet geëvalueerd.

Voorbeeld:
Laten we ter demonstratie eerst een tabel maken (zeg, items) met behulp van het onderstaande statement:

CREATE TABLE items ( ID serial PRIMARY KEY, product VARCHAR (100) NOT NULL, price NUMERIC NOT NULL, discount NUMERIC);

Er zijn vier velden in de items tabel:

  • id: de primaire sleutel die het item in de items-tabel identificeert.
  • product: de naam van het product.
  • prijs: de prijs van het product.
  • korting: de korting van het product.

Nu voegen we enkele records in de items tabel in met INSERT statement, en wel als volgt:

INSERT INTO items (product, price, discount)VALUES ('A', 1000, 10), ('B', 1500, 20), ('C', 800, 5), ('D', 500, NULL);

Tot slot vragen we de nettoprijzen van de producten op met behulp van het volgende:

SELECT product, (price - discount) AS net_priceFROM items;

Dit levert het volgende op:

Als u naar de vierde rij kijkt, ziet u dat de nettoprijs van product D null is, wat niet correct lijkt. Het probleem is dat de korting van product D null is, dus wanneer we de null-waarde gebruiken om de nettoprijs te berekenen, geeft PostgreSQL null terug. Om de juiste prijs te krijgen, moeten we aannemen dat als de korting null is, deze nul is. Dan kunnen we de functie COALESCE als volgt gebruiken:

SELECT product, (price - COALESCE(discount, 0)) AS net_priceFROM items;

Uitvoer:

Artikel Tags :

admin

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.

lg