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

Funkcja NULLIF() w Oracle

W bazie danych Oracle NULLIF() funkcja porównuje dwa wyrażenia i zwraca null jeśli oba wyrażenia są równe. Jeśli nie są równe, funkcja zwraca pierwsze wyrażenie.

Składnia

Składnia wygląda tak:

NULLIF(expr1, expr2)

Przykład

Oto przykład do zademonstrowania:

SELECT NULLIF(5, 7)
FROM DUAL;

Wynik:

5

W tym przypadku argumenty nie były równe, więc funkcja zwróciła pierwszy argument.

Oto, co się dzieje, gdy oba argumenty są równe:

SET NULL 'null';
SELECT NULLIF(7, 7)
FROM DUAL;

Wynik:

null

Widzimy, że NULLIF() zwraca null gdy oba argumenty są równe

Odnośnie pierwszej linii SET NULL 'null'; , dodałem to, aby moja sesja SQLcl zwracała null ilekroć wynik jest pusty.

Domyślnie SQLcl i SQL*Plus zwracają spację, gdy null występuje w wyniku polecenia SQL SELECT oświadczenie.

Możesz jednak użyć SET NULL aby określić inny ciąg do zwrócenia. Tutaj określiłem, że ciąg null należy zwrócić.

W porównaniu z CASE

NULLIF() funkcja jest odpowiednikiem następującego CASE wyrażenie:

CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END

Nieprawidłowa liczba argumentów

Wywołanie funkcji bez przekazywania jakichkolwiek argumentów skutkuje błędem:

SELECT NULLIF()
FROM DUAL;

Wynik:

SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"

Przekazywanie zbyt wielu argumentów również powoduje błąd:

SELECT NULLIF(1, 2, 3)
FROM DUAL;

Wynik:

SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jaka jest różnica między pls_integer a binary_integer?

  2. Funkcje a procedury w Oracle

  3. Jak stworzyć menu w SQLPlus lub PL/SQL

  4. Krok po kroku R12.2.6 Instalacja EBS na Virtual Box

  5. Znajdź wszystkie wartości nieliczbowe w kolumnie w Oracle