Робота зі значеннями NULL

Вступ до Oracle SQL

Hadrien Lacroix

Content Developer

Що таке значення NULL?

  • Немає значення
  • Не те саме, що 0
  • Арифметичні вирази з NULL дають NULL
    • NULL + 10 = NULL
  • Агрегатні функції зазвичай ігнорують NULL
    • COUNT не рахує NULL у стовпцях
Вступ до Oracle SQL

Чому важливі значення null?

Реальні дані не ідеальні.

  • Очистіть дані
  • Проаналізуйте пропуски
Вступ до Oracle SQL

Перевірка, чи значення є NULL

= не можна використовувати для перевірки NULL

Замість цього використайте:

  • IS NULL
    SELECT * FROM Customer WHERE LastName IS NULL
    
  • IS NOT NULL
    SELECT * FROM Customer WHERE LastName IS NOT NULL
    
Вступ до Oracle SQL

NVL

NVL(x, y): перетворює x, що може містити null, на y — ненульове значення.

SELECT NVL(HireDate, '11/19/2004')
FROM Employee
Вступ до Oracle SQL

NULLIF

NULLIF(x, y): порівнює x і y, повертає

  • NULL, якщо x=y
  • x, якщо вони не рівні
SELECT c.CustomerId, i.BillingCity, c.City, NULLIF(i.BillingCity, c.City) 
FROM Invoice i, Customer c
| CustomerId | BillingCity | City      | NULLIF |
|------------|-------------|-----------|--------|
| 48         | Oslo        | Amsterdam | Oslo   |
| 49         | Boston      | Vienne    | Boston |
| 59         | London      | London    | NULL   |
Вступ до Oracle SQL

COALESCE

COALESCE: повертає перше ненульове значення зі списку

SELECT CustomerId, COALESCE(phone, email, fax) AS ContactMethod
FROM Customer
| CustomerId | ContactMethod           |
|------------|-------------------------|
| 59         | +91 080 22289999        |
| 58         | [email protected] |
| 57         | +56 (0)2 635 4444       |
Вступ до Oracle SQL

Давайте потренуємось!

Вступ до Oracle SQL

Preparing Video For Download...