Mikä on PostgreSQL-vaste Oraclen NVL-toiminnolle?


Paras vastaus

Oraclen NVL-toiminnon avulla voit korvata nollan merkkijonolla Kysely. Se on hyödyllinen tyhjien arvojen poistamiseksi.

Tässä on syntaksia:

NVL(exp\_to\_check, replacement\_value)

Jos exp\_to\_check on nolla, NLV () palauttaa replacement\_value. Jos exp\_to\_check ei ole nolla, niin NLV () palauttaa exp\_to\_check.

Vaikka PostgreSQL: n COALESCE () -toiminto ei olisikaan tarkka, se hyväksyy rajattoman määrän argumentteja ja palauttaa ensimmäisen argumentin, joka ei ole nolla. Jos kaikki argumentit ovat nollia, funktio COALESCE palauttaa nollan. Sen syntaksit ovat:

COALESCE (argument\_1, argument\_2, …)

Tässä on muutama esimerkki havainnollistamiseksi käyttämällä Navicat for PostgreSQL -tietokannan kehitysasiakasta:

COALESCE (): n käyttäminen todellisessa kyselyssä

Tässä on realistisempi esimerkki Sakilan näytetietokannasta:

Osoitetaulukko sisältää osoite- ja osoite2-kentän. Jälkimmäinen voi olla tyhjä. Voimme korvata ne arvolla ”N / A” käyttämällä COALESCE () -toimintoa.

Pidän siitä, että Navicat Query Editor voi näyttää minulle ja jopa lisätä oikean syntaksin kyselyihini.

Tässä on täydellinen kysely ja tulokset:

Voit nähdä, että null address2 -arvot on muunnettu.

Ystävällisin terveisin!

Adam

Vastaa

COALESCE

Toki, NVL on lyhyempi nimi, mutta tiedät mitä?

  • Kukaan ei ymmärrä mitä NVL tarkoittaa. Noobille on vaikea selittää.
  • NVL vie vain 2 argumenttia, kun taas COALESCE vie mielivaltaisen luvun .
  • COALESCE on osa ANSI-standardin SQL: ää. Jokainen SQL-tietokanta tukee sitä, mukaan lukien Oracle. Vain Oracle tukee NVL (ja ilmeisesti myös Informix; katso kommentit).

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *