Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Funkcja NVL2 w Oracle

Ten samouczek SQL zawiera wyjaśnienia, przykłady funkcji NVL2 w Oracle

Funkcja NVL2 jest funkcją zagnieżdżania. Sprawdza pierwsze wrażenie, jeśli pierwsze wrażenie nie jest puste, to funkcja NVL2 zwraca drugie wyrażenie. jeśli pierwsze wrażenie jest puste, zwraca trzecie wyrażenie.

wyr1 :są to wartości źródłowe lub wyrażenie, które może zawierać wartość null. Możesz podać nazwę kolumny,funkcję na nazwie kolumny
expr2 :Jest to wartość wyrażenia, która jest zwracana, jeśli wyrażenie1 nie jest puste
wyrażenie3 :To jest wartość wyrażenia, która jest zwracana, jeśli wyrażenie1 jest puste

Argument wyr1 może mieć dowolny typ danych. Argumenty expr2 i expr3 mogą mieć dowolne typy danych oprócz LONG.

SQL> select nvl2(user_name,1,2) from apps.fnd_user where rownum < 5;

NVL2(USER_NAME,1,2)
-------------------
1
1
1
1

SQL> select nvl2(end_date,1,2) from apps.fnd_user where rownum < 5;

NVL2(END_DATE,1,2)
------------------
1
2
1
1

Jeśli typy danych expr2 i expr3 są różne:

Jeśli wyrażenie2 jest danymi znakowymi, baza danych Oracle konwertuje wyrażenie3 na typ danych wyrażenie2 przed ich porównaniem, chyba że wyrażenie3 jest stałą null. W takim przypadku konwersja typu danych nie jest konieczna. Oracle zwraca VARCHAR2 w zestawie znaków wyrażenia 2.

Jeśli wyrażenie2 jest liczbowe, Oracle określa, który argument ma najwyższy priorytet liczbowy, domyślnie konwertuje inny argument na ten typ danych i zwraca ten typ danych.

Typ danych zwracanego typu jest zawsze taki sam jak typ danych wyraż2 chyba, że ​​wyraż2 jest danymi znakowymi, w którym to przypadku zwracana wartość jest zawsze varchar2

SQL> select nvl2(end_date,1,'a') from apps.fnd_user where rownum < 5;
select nvl2(end_date,1,'a') from apps.fnd_user where rownum < 5
*
ERROR at line 1:
ORA-01722: invalid number

SQL> select nvl2(end_date,'a',1) from apps.fnd_user where rownum < 5;

N
-
a
1
a
a

Użycie

SELECT last_name, salary, NVL2(commission_pct,
salary + (salary * commission_pct), salary) income
FROM employees WHERE last_name like 'B%'
ORDER BY last_name;

Powiązane artykuły

Funkcje jednowierszowe w Sql
Funkcja NULLIF w Oracle
Wykaz aktualizacji w Oracle
Funkcja łączenia w Oracle
Funkcja Oracle LITAGG
Funkcje daty Oracle


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bezpieczeństwo baz danych w Oracle

  2. Błąd 1033 otrzymał logowanie do trybu gotowości

  3. Jak używać bieżącej daty w zapytaniu HQL z bazą danych Oracle?

  4. Jak skonfigurować podświetlanie składni w SQLcl

  5. Data wyroczni