In PostgreSQL, la funzione COALESCE restituisce il primo argomento non nullo. È generalmente usata con l’istruzione SELECT per gestire efficacemente i valori nulli.

Syntax: COALESCE (argument_1, argument_2, …);

La funzione COALESCE accetta un numero illimitato di argomenti. Restituisce il primo argomento che non è nullo. Se tutti gli argomenti sono nulli, la funzione COALESCE restituisce null. a funzione COALESCE valuta gli argomenti da sinistra a destra finché non trova il primo argomento non nullo. Tutti gli argomenti rimanenti dal primo argomento non nullo non vengono valutati.

Esempio:
Ai fini della dimostrazione creiamo prima una tabella (diciamo items) usando la seguente dichiarazione:

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

Ci sono quattro campi nella items tabella:

  • id: la chiave primaria che identifica l’elemento nella tabella items.
  • prodotto: il nome del prodotto.
  • prezzo: il prezzo del prodotto.
  • sconto: lo sconto del prodotto.

Ora inseriamo alcuni record nella items tabella usando l’istruzione INSERT come segue:

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

Finalmente interroghiamo i prezzi netti dei prodotti usando il seguente:

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

Questo porterà ai seguenti risultati:

se guardate la quarta riga, noterete che il prezzo netto del prodotto D è nullo il che non sembra corretto. Il problema è che lo sconto del prodotto D è nullo, quindi quando prendiamo il valore nullo per calcolare il prezzo netto, PostgreSQL restituisce nullo. Per ottenere il prezzo giusto, dobbiamo assumere che se lo sconto è nullo, è zero. Quindi possiamo usare la funzione COALESCE come segue:

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

Output:

Articolo Tag :

admin

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

lg