Tento tutoriál Oracle SQL poskytuje vysvětlení a příklady funkcí NVL v Oracle
Co je funkce NVL() v Oracle
Funkce NVL v Oracle je funkce vnoření, která se používá k nahrazení hodnot null určitými hodnotami
Ve výše uvedené syntaxi
výraz1 :jsou to zdrojové hodnoty nebo výraz, který může obsahovat null. Můžete zadat název sloupce, funkci v názvu sloupce
výraz2:Je to cílová hodnota, která bude umístěna v případě, že se z výrazu vrátí null
Pokud má výraz expr1 hodnotu null, pak NVL vrátí výraz výraz2. Pokud výraz expr1 není null, pak NVL vrátí výraz expr1.
Důležité poznámky
(1) Argumenty expr1 a expr2 mohou mít libovolný datový typ. Pokud se jejich datové typy liší, Oracle Database implicitně převede jeden na druhý. Pokud je nelze implicitně převést, databáze vrátí chybu.
Pokud jsou expr1 znaková data, pak Oracle Database převede expr2 na datový typ expr1, než je porovná a vrátí VARCHAR2 ve znakové sadě výrazu1.
Pokud je výraz expr1 číselný, pak Oracle určí, který argument má nejvyšší číselnou prioritu, implicitně převede druhý argument na tento datový typ a vrátí tento datový typ.
Takže následující tvrzení by uspělo
select nvl(num-col ,10) from
select nvl(char-col ,'NA') from select nvl(end_date,'01-MAY-18') from
Následující příkaz by provedl implicitní konverzi
vyberte nvl(char-col ,1) z
Následující příkaz by selhal
select nvl(end_date,'m/a') from
select nvl(user_id,'abc') from Jak používat funkci NVL()
Tato funkce je velmi užitečná tam, kde nechceme vracet hodnoty null nebo v numerickém výpočtu, protože null by změnil celé hodnoty na null
Pojďme vezměte si příklad, abyste to pochopili
Máme tabulku sales_people, která obsahuje prodeje uskutečněné prodejci, % provize z prodeje, plat lidí. Chceme vypočítat celkové měsíční příjmy pro prodejce. Prodej může mít hodnoty null
Vyjádření by bylo
vyberte jméno,(plat + prodej*provize/100) Měsíční_příjem od sales_people;
Vrátí hodnoty null všech lidí, kteří v daném období neprovedli žádný prodej, protože výpočet bude mít hodnoty null
To lze opravit pomocí funkce nvl jako
vyberte jméno,(plat + nvl(prodej,0)*provize/100) Měsíční_příjem od sales_people;
Je tedy zjevně velmi užitečné při provádění matematických operací. Funkce NVL v Oracle je docela užitečná funkce a lze ji použít na mnoha místech
Také čte
Funkce data Oracle SQL
Funkce NULLIF v Oracle
Aktualizace příkazu v oracle
Funkce Coalesce v Oracle
změna formátu data v oracle
https://docs .oracle.com/cd/B19306_01/server.102/b14200/functions105.htm