Maybaygiare.org

Blog Network

Kuinka käyttää COALESCEA PostgreSQL: ssä

yhteenveto: tässä artikkelissa tarkastellaan menetelmiä, joilla käsitellään NOLLIARVOJA PostgreSQL: ssä COALESCE-funktion avulla. Esimerkkien kanssa käsiteltäviä aiheita ovat:

1. Mikä on COALESCE funktio?

a. joitakin varoituksia

2. Estämällä NULL-arvot COALESCE

tässä viestissä aiomme ymmärtää, mikä COALESCE-funktio on ja miten sitä käytetään PostgreSQL: ssä.

mikä on KOALITIOFUNKTIO?

COALESCE on järjestelmän sisäinen funktio, jota voidaan pitää yhtenä PostgreSQL: ssä käytettävissä olevista ehdollisista lausekkeista. NULLIF, GREATEST, LEAST ja COALESCE ovat PostgreSQL: n ehdollisten lausekkeiden tyyppejä.

COALESCE-funktio palauttaa määritetyn luettelon ensimmäisen Ei-NULL-lausekkeen. Jos kaikki argumentit ovat nollia, se palaa nolliksi tulosteenaan.

tuettu syntaksi on:

parametrit tai argumentit ovat:

value_1,value_2,value_3,........value_n

Caveats

muutamia kohtia COALESCE-funktiosta:

  • parametreille testataan ei-NULL-arvoja.
  • parametrien tulee olla kaikki samaa datatyyppiä. Muuten se johtaa virheeseen.
  • COALESCE-funktio hyväksyy rajoittamattoman määrän argumentteja.
  • se vie argumentit vasemmalta oikealle.
  • Coalesce-funktio tarjoaa samankaltaisen yhteensopivuuden, kuten NVL ja IFNULL, jotka ovat saatavilla muissa DBMS: issä.
  • casea ja COALESCEA voidaan käyttää vastaaviin tarkoituksiin, mutta COALESCEN käytön etuna on se, että se vaatii huomattavasti vähemmän konekirjoitusta.
  • se lopettaa parametrien arvioinnin heti, kun ensimmäinen ei-nolla-arvo saavutetaan.

esimerkkejä

1. Näin COALESCE toimii ei-NULL-arvolla ensimmäiselle parametrille:

postgres=# select coalesce (1,null,2); coalesce ---------- 1(1 row)

COALESCE-funktio löytää ensimmäisen Ei-NULL-lausekkeen alussa, joten se tuottaa aina saman tuloksen riippumatta siitä, mitä jäljellä olevat parametrit sisältävät.

2. Näin COALESCE toimii, kun nolla-arvo on ensimmäinen parametri:

postgres=# select coalesce (null,1,2); coalesce ---------- 1(1 row)

COALESCE-funktio löysi ensimmäisestä parametrista nollan arvon, joten se jatkoi toiseen parametriin, joka ei ollut nolla, joten parametrin arvo palautettiin.

3. Näin se tulkitsee useita NULL-arvoja:

postgres=# SELECT coalesce(null,null, 1, 2, 3, null, 4); coalesce ---------- 1(1 row)

tässä lausekkeessa on useita Nulleja, mutta koska ensimmäinen ei-NULL-arvo saavutettiin kolmannella parametrilla, kaikki jäljellä olevat arvot jätettiin huomiotta.

4. Jos parametrien tietotyypit eivät täsmää, tämä tuottaa virheen:

postgres=# SELECT coalesce(1,now(),null);ERROR: COALESCE types integer and timestamp with time zone cannot be matched

ensimmäinen parametri on kokonaisluku, ja now () – funktio palauttaa aikaleiman aikavyöhykkeellä. Koska nämä parametrit eivät ole samaa tyyppiä, allekirjoitus funktio on virheellinen, ja niin tuottaa ja virhe.

5. Voit käyttää muita funktioita parametreina COALESCE-funktion sisällä:

postgres=# SELECT coalesce(nvl(null,199),least(8,null),avg(9.9)); coalesce ---------- 199(1 row)

estäen nolla-arvoja COALESCE

coalesce-funktion hyödyllinen sovellus on estää nolla-arvojen näkyminen kyselytuloksissa.

esimerkki

1. Luo taulukko ”myynti”käyttämällä Luo taulu-komentoa:

postgres=# CREATE TABLE sales (serial_id int primary key, product_name varchar(50), amount numeric, discount numeric); CREATE TABLE

2. Lisätään tiedot taulukkoon ”myynti”:

3. Jos yritämme suorittaa vähentää arvo ” alennus ”sarakkeessa arvo” määrä ” sarake, viimeinen rivi palauttaa nolla-arvo. Tämä johtuu siitä, että mikä tahansa aritmeettinen suoritus on nolla, johtaa nollaan.

postgres=# SELECT amount - discount as "final bill" FROM sales; final bill ------------ 990 1480 800 <=Null(4 rows)

Vastaa

Sähköpostiosoitettasi ei julkaista.