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

Odpowiednik Oracle ISNULL()

Większość głównych DBMS zapewnia nam funkcję zastępującą wartości null inną wartością.

Ale nazwa funkcji jest różna w różnych systemach DBMS. Na przykład SQL Server ma funkcję ISNULL() funkcja, podczas gdy inne (takie jak MySQL, MariaDB i SQLite) mają funkcję IFNULL() funkcja do robienia tego samego.

Jednak, aby pomylić sprawy, MySQL i MariaDB mają funkcję ISNULL() funkcja, która działa inaczej niż funkcja SQL Server o tej samej nazwie (implementacja MySQL i MariaDB akceptuje tylko jeden argument i zwraca 1 jeśli jego null i 0 jeśli nie).

Zresztą w przypadku Oracle Database możemy użyć NVL() funkcja zastępująca wartości null inną wartością.

W rzeczywistości baza danych Oracle ma również funkcję NVL2() funkcja, która pozwala nam podać inną wartość do użycia w przypadku, gdy pierwszym argumentem nie jest null .

Jeśli chcemy po prostu sprawdzić, czy wartość jest null czy nie, możemy użyć IS NULL warunek (lub IS NOT NULL dla przeciwnego testu).

NVL() Funkcja

Oto przykład, który pokazuje, jak NVL() funkcja działa:

SELECT NVL(null, 'Run')
FROM DUAL;

Wynik:

Run

W takim przypadku pierwszym argumentem był null i tak zwrócono drugi argument.

Oto, co się dzieje, gdy pierwszy argument nie jest null :

SELECT NVL('Walk', 'Run')
FROM DUAL;

Wynik:

Walk

Zwracany jest pierwszy argument.

NVL2() Funkcja

Jak wspomniano, Oracle Database zapewnia nam również funkcję NVL2() funkcjonować. Ta funkcja pozwala nam podać inną wartość do użycia w przypadku, gdy pierwszym argumentem nie jest null .

Oto przykład tego, jak to działa:

SELECT NVL2(null, 2, 3)
FROM DUAL;

Wynik:

3

Pierwszym argumentem był null i tak trzeci argument został zwrócony.

Oto, co się dzieje, gdy pierwszy argument nie jest null :

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

Wynik:

2

Zwracany jest drugi argument.

IS NULL i IS NOT NULL Warunki

Jeśli chcemy tylko dowiedzieć się, czy wartość jest null , możemy użyć IS NULL warunek porównania. Możemy alternatywnie użyć IS NOT NULL aby sprawdzić, czy nie jest null .

Załóżmy, że mamy następującą tabelę:

SELECT * FROM Autoparts
WHERE Price IS NULL;

Wynik:

ID OE# CENA MODEL
2 62150B3278 CAMRY
1 62150A3278 168 HILUX

W tym przypadku PRICE kolumna zawiera wartość null dla pierwszego wiersza, ale nie dla drugiego wiersza.

Oto przykład użycia IS NULL przy tej tabeli:

SELECT * FROM Autoparts
WHERE Price IS NULL;

Wynik:

ID OE# CENA MODEL
2 62150B3278 CAMRY

Zwracany jest tylko wiersz z ceną null.

Oto, co się dzieje, gdy używamy IS NOT NULL :

SELECT * FROM Autoparts
WHERE Price IS NOT NULL;

Wynik:

ID OE# CENA MODEL
1 62150A3278 168 HILUX

Zwracany jest drugi wiersz.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Używanie CONTINUE In Loops do wznowienia kontroli w Oracle

  2. CURRENT_DATE Funkcja w Oracle

  3. Jak mogę uzyskać dostęp do Oracle z Pythona?

  4. Moja podróż OOW15 jest zakończona

  5. Jak zainstalować SQLcl na komputerze Mac?