NULL qiymatni tekshirish
Kirish: ushbu darsda siz qiymatning NULL ekanini aniqlash uchun PostgreSQL IS NULL operatorini qanday ishlatishni o'rganasiz.
PostgreSQL da NULL — noma'lum ma'lumotni bildiruvchi belgi. Qiymatning NULL ekanini tekshirish uchun uni teng belgi yordamida NULL bilan taqqoslab bo'lmaydi. NULL noma'lum bo'lgani uchun, qiymatni noma'lum qiymat bilan taqqoslash natijasi ham noma'lum qiymat (yoki NULL) bo'ladi. Masalan:
SELECT
10 = NULL AS result;
Natija:
result
--------
NULL
Bu misolda biz 10 sonini teng belgi yordamida NULL bilan taqqoslayapmiz. Taqqoslash NULL qaytaradi.
Qiymatni NULL bilan taqqoslash uchun IS NULL operatoridan foydalaning:
value IS NULL
IS NULL operatori qiymatni NULL bilan taqqoslaydi va agar qiymat NULL bo'lsa true, aks holda false qaytaradi. Masalan:
SELECT
NULL IS NULL null_vs_null,
10 IS NULL null_vs_10;
Natija:
| null_vs_null | null_vs_10 |
|---|---|
| true | false |
IS NULL operatori natijasini inkor qilish uchun IS NOT NULL operatoridan foydalaning:
value IS NOT NULL
IS NOT NULL operatori qiymatni NULL bilan taqqoslaydi va agar qiymat null bo'lmasa true, aks holda false qaytaradi.
Ustunda NULL bo'lmasligi uchun NOT NULL cheklovidan foydalaniladi. Agar IS NULL operatori o'rniga funksiyalar yordamida NULL larni boshqarmoqchi bo'lsangiz, NULLIF, ISNULL va COALESCE funksiyalaridan foydalanishingiz mumkin.
IS NULL operatorini ko'rsatish uchun profiles jadvalidan foydalanamiz.
Quyidagi SELECT ifodasi ish telefoni bo'lmagan foydalanuvchilarni olish uchun IS NULL operatoridan foydalanadi:
SELECT
first_name,
last_name,
work_phone
FROM
profiles
WHERE
work_phone IS NULL;
Natija:
first_name | last_name | work_phone
-----------+-----------+------------
Alice | Jones | NULL
Bob | Brown | NULL
Charlie | Davis | NULL
So'rov work_phone ustunidagi qiymatlari NULL bo'lgan xodimlarni qaytaradi.
Quyidagi so'rov ish telefoni mavjud xodimlarni olish uchun IS NOT NULL operatoridan foydalanadi:
SELECT
first_name,
last_name,
work_phone
FROM
profiles
WHERE
work_phone IS NOT NULL;
Natija:
first_name | last_name | work_phone
-----------+-----------+--------------
John | Doe | 408-456-7890
Jane | Smith | 408-456-7891
psql — buyruq qatori interfeysi yordamida PostgreSQL Server bilan ishlash uchun mo'ljallangan mijoz dastur. psql dasturi NULL uchun standart holda bo'sh joy ko'rsatadi. NULL ni ifodalash uchun NULL literal satrini ishlatish maqsadida quyidagi buyruqdan foydalaning:
\pset null NULL
IS NULL operatori qiymatni NULL bilan taqqoslaydi va agar qiymat NULL bo'lsa true, aks holda false qaytaradi.IS NOT NULL operatori qiymatni NULL bilan tekshiradi va agar qiymat NULL bo'lmasa true, aks holda false qaytaradi.