Mi az Oracle NVL funkciójának PostgreSQL megfelelője?


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 az COALESCE 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 a NVL szolgáltatást (és látszólag az Informix is; lásd a megjegyzéseket).

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük