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. -
NVLcsak 2 argumentumot vesz igénybe, míg azCOALESCEtetszőleges számot vesz fel . -
COALESCEaz ANSI szabványos SQL része. Minden SQL adatbázis támogatja, beleértve Oracle. Csak az Oracle támogatja aNVLszolgáltatást (és látszólag az Informix is; lásd a megjegyzéseket).