În PostgreSQL, funcția COALESCE returnează primul argument non-null. În general, este utilizată cu instrucțiunea SELECT pentru a gestiona eficient valorile nule.

Syntax: COALESCE (argument_1, argument_2, …);

Funcția COALESCE acceptă un număr nelimitat de argumente. Ea returnează primul argument care nu este nul. Dacă toate argumentele sunt nule, funcția COALESCE va returna null. a funcția COALESCE evaluează argumentele de la stânga la dreapta până când găsește primul argument care nu este nul. Toate argumentele rămase de la primul argument non-nul nu sunt evaluate.

Exemplu:
În scopul demonstrației, să creăm mai întâi un tabel (să zicem, items) folosind instrucțiunea de mai jos:

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

Există patru câmpuri în items tabel:

  • id: cheia primară care identifică elementul în tabelul items.
  • product: numele produsului.
  • price: prețul produsului.
  • discount: reducerea produsului.

Acum inserăm câteva înregistrări în tabela items folosind instrucțiunea INSERT după cum urmează:

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

În cele din urmă interogăm prețurile nete ale produselor folosind următoarele:

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

Acest lucru va duce la următoarele:

Dacă vă uitați la al patrulea rând, veți observa că prețul net al produsului D este nul, ceea ce nu pare corect. Problema este că reducerea produsului D este nulă, prin urmare, atunci când luăm valoarea nulă pentru a calcula prețul net, PostgreSQL returnează null. Pentru a obține prețul corect, trebuie să presupunem că, dacă reducerea este nulă, aceasta este zero. Atunci putem folosi funcția COALESCE după cum urmează:

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

Scoatere:

Articolul Tags :

admin

Lasă un răspuns

Adresa ta de email nu va fi publicată.

lg