Legjobb válasz
Az Oracle NVL funkciója lehetővé teszi a null helyettesítését egy karakterlánccal egy lekérdezés. Hasznos a nullértékek megszabadításához.
Íme a szintaxis:
NVL(exp\_to\_check, replacement\_value)
Ha exp\_to\_check
értéke null, akkor az NLV () visszaadja replacement\_value
. Ha a exp\_to\_check
nem null, akkor Az NLV () visszaadja az exp\_to\_check
értéket.
Noha nem egyezik pontosan, a PostgreSQL COALESCE () függvénye nagyon hasonló funkciót kínál. Korlátlan számú argumentumot fogad el, és az első argumentumot adja vissza, amely nem null. Ha minden argumentum null, az COALESCE
függvény nullát ad vissza. Szintaxisa:
COALESCE (argument\_1, argument\_2, …)
Az alábbiakban bemutatunk néhány alapvető példát a Navicat for PostgreSQL adatbázis-fejlesztő kliensem használatával:
A COALESCE () használata valódi lekérdezésben
Íme egy reálisabb példa a Sakila Mintaadatbázis használatával:
A címtábla tartalmaz egy címet és 2. címet. Ez utóbbi semleges lehet. A COALESCE () függvény segítségével lecserélhetjük azokat „N / A” értékre.
Tetszik, hogy a Navicat Query Editor megmutathatja nekem, sőt beillesztheti a megfelelő szintaxist is a kérdéseimbe. >
Íme a teljes lekérdezés és az eredmények:
Láthatja, hogy a null address2 értékeket átalakították.
Üdvözlettel!
Ádám
Válasz
COALESCE
Bizony, NVL
rövidebb név, de tudod mit?
- Senki sem érti, mit jelent a
NVL
. Nehéz elmagyarázni noobsnak. -
NVL
csak 2 argumentumot vesz igénybe, míg azCOALESCE
tetszőleges számot vesz fel . -
COALESCE
az ANSI szabványos SQL része. Minden SQL adatbázis támogatja, beleértve Oracle. Csak az Oracle támogatja aNVL
szolgáltatást (és látszólag az Informix is; lásd a megjegyzéseket).