Oracle
 sql >> база данни >  >> RDS >> Oracle

Еквивалент на Oracle ISNULL().

Повечето основни СУБД ни предоставят функция за замяна на нулеви стойности с друга стойност.

Но името на функцията има тенденция да се различава в различните СУБД. Например SQL Server има ISNULL() функция, докато други (като MySQL, MariaDB и SQLite) имат IFNULL() функция за извършване на същото нещо.

Въпреки това, за да се объркат нещата, MySQL и MariaDB имат ISNULL() функция, която работи различно от функцията на SQL Server със същото име (внедряването на MySQL и MariaDB приема само един аргумент и връща 1 ако е null и 0 ако не е).

Както и да е, в случая с Oracle Database, можем да използваме NVL() функция за замяна на нулеви стойности с друга стойност.

Всъщност Oracle Database също има NVL2() функция, която ни позволява да предоставим друга стойност, която да използваме в случай, че първият аргумент не е null .

Ако просто искаме да проверим дали дадена стойност е null или не, можем да използваме IS NULL условие (или IS NOT NULL за обратния тест).

NVL() Функция

Ето пример, който демонстрира как NVL() функция работи:

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

Резултат:

Run

В този случай първият аргумент беше null и така вторият аргумент беше върнат.

Ето какво се случва, когато първият аргумент не е null :

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

Резултат:

Walk

Първият аргумент се връща.

NVL2() Функция

Както споменахме, Oracle Database ни предоставя и NVL2() функция. Тази функция ни позволява да предоставим друга стойност, която да използваме в случай, че първият аргумент не е null .

Ето пример за това как работи:

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

Резултат:

3

Първият аргумент беше null и така беше върнат третият аргумент.

Ето какво се случва, когато първият аргумент не е null :

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

Резултат:

2

Вторият аргумент се връща.

IS NULL и IS NOT NULL Условия

Ако просто искаме да разберем дали дадена стойност е null , можем да използваме IS NULL условие за сравнение. Като алтернатива можем да използваме IS NOT NULL за да проверите дали не е null .

Да предположим, че имаме следната таблица:

SELECT * FROM Autoparts
WHERE Price IS NULL;

Резултат:

ID OE# PRICE МОДЕЛ
2 62150B3278 CAMRY
1 62150A3278 168 HILUX

В този случай PRICE колоната съдържа нулева стойност за първия ред, но не и за втория ред.

Ето пример за използване на IS NULL срещу тази таблица:

SELECT * FROM Autoparts
WHERE Price IS NULL;

Резултат:

ID OE# PRICE МОДЕЛ
2 62150B3278 CAMRY

Връща се само реда с нулева цена.

Ето какво се случва, когато използваме IS NOT NULL :

SELECT * FROM Autoparts
WHERE Price IS NOT NULL;

Резултат:

ID OE# PRICE МОДЕЛ
1 62150A3278 168 HILUX

Другият ред се връща.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle PLSQL въпроси за интервю

  2. Име на колона на таблицата Oracle с интервал

  3. Как да получите дефиниция на таблица в Oracle?

  4. Заявка за проверка на размера на таблицата в базата данни на Oracle

  5. Вземете списък с всички функции и процедури в база данни на Oracle