Jaký je PostgreSQL ekvivalent funkce NVL společnosti Oracle?


Nejlepší odpověď

Funkce NVL společnosti Oracle umožňuje nahradit null řetězcem ve výsledcích Je užitečné se zbavit nulových hodnot.

Zde je syntaxe:

NVL(exp\_to\_check, replacement\_value)

Pokud exp\_to\_check je null, pak NLV () vrátí replacement\_value. Pokud exp\_to\_check není null, pak NLV () vrací exp\_to\_check.

Ačkoli nejde o přesnou shodu, funkce COALESCE () PostgreSQL poskytuje velmi podobnou funkci. Přijímá neomezený počet argumentů a vrací první argument, který není null. Pokud jsou všechny argumenty null, funkce COALESCE vrátí null. Jeho syntaxe je:

COALESCE (argument\_1, argument\_2, …)

Zde je několik základních příkladů pro ilustraci pomocí mého Navicat pro klienta pro vývoj databáze PostgreSQL :

Použití COALESCE () ve skutečném dotazu

Zde je realističtější příklad použití ukázkové databáze Sakila:

Tabulka adres obsahuje pole adresy a adresy2. Druhá z nich může být nulová. Můžeme je nahradit pomocí hodnoty „N / A“ pomocí funkce COALESCE ().

Líbí se mi, že mi může editor dotazů Navicat ukázat a dokonce do mých dotazů vložit správnou syntaxi.

Zde je kompletní dotaz a výsledky:

Vidíte, že byly převedeny hodnoty null address2.

S pozdravem!

Adam

Odpověď

COALESCE

Jistě, NVL je kratší název, ale víte co?

  • Nikdo nechápe, co znamená NVL. Je těžké vysvětlit noobs.
  • NVL trvá pouze 2 argumenty, zatímco COALESCE trvá libovolné číslo .
  • COALESCE je součástí standardního SQL ANSI. Každá databáze SQL to podporuje, včetně Oracle. Pouze Oracle podporuje NVL (a očividně také Informix; viz komentáře).

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *