Birinchi NULL bo'lmagan qiymat
Kirish: Ushbu qo'llanmada siz PostgreSQL COALESCE() funksiyasi yordamida NULL qiymatlarni qayta ishlash va argumentlar ro'yxatidan birinchi NULL bo'lmagan qiymatni tanlab olishni o'rganasiz.
PostgreSQLda NULL noma'lum yoki kiritilmagan qiymatni bildiradi.
COALESCE() funksiyasi bir nechta argumentlarni qabul qiladi va ularni chapdan o'ngga qarab tekshirib, duch kelgan birinchi NULL bo'lmagan qiymatni qaytaradi.
Funksiyaning sintaksisi:
COALESCE(value1, value2, ...)
NULL bo'lsa, COALESCE() funksiyasi NULL qaytaradi.Foydalanuvchilar profillarini saqlovchi profiles jadvali ustida misollarni ko'ramiz:
SELECT
first_name,
work_phone
FROM
profiles
ORDER BY
first_name;
Natija:
first_name | work_phone
------------+--------------
Alice | NULL
Bob | NULL
Charlie | NULL
Jane | 408-456-7891
John | 408-456-7890
Ko'rib turganingizdek, Alice, Bob va Charlie uchun ish telefoni (work_phone) kiritilmagan (NULL).
Natija chiroyli va tushunarli bo'lishi uchun NULL o'rniga 'Mavjud emas' (yoki 'N/A') yozuvini chiqaramiz:
SELECT
first_name,
COALESCE(work_phone, 'N/A') AS work_phone
FROM
profiles
ORDER BY
first_name;
Natija:
first_name | work_phone
------------+--------------
Alice | N/A
Bob | N/A
Charlie | N/A
Jane | 408-456-7891
John | 408-456-7890
Agar work_phone mavjud bo'lsa telefon raqami, agar NULL bo'lsa 'N/A' chiqadi.
Aytaylik, foydalanuvchilar bilan bog'lanish uchun ish telefoni bo'lmasa uy telefonini (home_phone), ikkalasi ham bo'lmasa 'N/A' chiqarmoqchisiz:
SELECT
first_name,
COALESCE(work_phone, home_phone, 'N/A') AS phone
FROM
profiles
ORDER BY
first_name;
Natija:
first_name | phone
------------+--------------
Alice | 408-111-4444
Bob | 408-111-5555
Charlie | N/A
Jane | 408-456-7891
John | 408-456-7890
Bunda:
'N/A' chiqdi.NULL bo'lmagan qiymatni tanlash uchun COALESCE(v1, v2, ...) funksiyasidan foydalaning.COALESCE hisobotlarda NULL o'rniga sukut bo'yicha qiymatlar yoki matnlar ko'rsatishning eng sodda va samarali usulidir.