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 taasCOALESCE
vie mielivaltaisen luvun . -
COALESCE
on osa ANSI-standardin SQL: ää. Jokainen SQL-tietokanta tukee sitä, mukaan lukien Oracle. Vain Oracle tukeeNVL
(ja ilmeisesti myös Informix; katso kommentit).