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ä
NVLtarkoittaa. Noobille on vaikea selittää. -
NVLvie vain 2 argumenttia, kun taasCOALESCEvie mielivaltaisen luvun . -
COALESCEon osa ANSI-standardin SQL: ää. Jokainen SQL-tietokanta tukee sitä, mukaan lukien Oracle. Vain Oracle tukeeNVL(ja ilmeisesti myös Informix; katso kommentit).