
Funkce nahrazující NULL
NULL hodnotu lze ve výsledku nahrazovat konstantou nebo hodnotou jiného sloupce pomocí funkcí NVL, NVL2, COALESCE. Funkce NVL a NVL2 lze požít pouze v databázi ORACLE, funkce COALESCE je dostupná v ORACLE i PGSQL.
Funkce NVL vyhodnotí první parametr a pokud je NULL, výsledkem je druhý parametr. Pokud první parametr není NULL, je výsledkem funkce první parametr.
- SELECT NVL(NULL, 0) FROM DUAL - výsledek je 0
- SELECT NVL(5, 0) FROM DUAL - výsledek je 5
- SELECT NVL(cena, 0) FROM zbozi - výsledkem je buď hodnota ve sloupci cena nebo 0, pokud není na daném řádku cena uvedena.
Funkce NVL2 má o parametr víc, druhý parametr je výsledkem funkce v případě, kdy první parametr není NULL, třetí parametr je výsledkem, pokud první parametr je NULL.
- SELECT NVL2(999,0,1) FROM DUAL - výsledek je 0, protože 999 není NULL
Funkce COALESCE má neomezený počet parametrů a jejím výsledkem je první NOT NULL parametr.
- SELECT COALESCE (cena_akce, cena_prodej, cena_nakup, 0) FROM zbozi -
testuje pro každý řádek tabulky zbozi postupně jednotlivé sloupce a vrátí tu hodnotu, která není NULL.