Darsliklar SQL CASE va NULL ifodalar

SQL SQL CASE va NULL ifodalar

CASE va NULL ifodalar — SQL’ga shartli mantiq va bo’sh qiymatlarni boshqarish imkonini beruvchi vositalar. CASE — so’rov ichida “agar shunday bo’lsa, buni ko’rsat” mantig’ini yaratadi. NULL esa ma’lumot yo’qligini bildiradi va u bilan ishlash o’ziga xos qoidalarga ega.

CASEso’rov ichida shartga qarab turli qiymat qaytaradigan ifoda. NULL — qiymat mavjud emasligini (bo’shlikni) bildiruvchi maxsus belgi.

Boshlang’ich jadval

Quyidagi foydalanuvchilar jadvali bilan ishlaymiz (ba’zi qiymatlar NULL):

id ism yosh shahar
1 Farrux 26 Toshkent
2 Master Sherkulov 30 NULL
3 Aziz 17 Samarqand

CASE — shartli qiymat

CASE har bir qator uchun shartga qarab turli natija qaytaradi. Masalan, yoshga qarab toifa:

SELECT ism, yosh,
    CASE
        WHEN yosh >= 18 THEN 'Voyaga yetgan'
        ELSE 'Voyaga yetmagan'
    END AS toifa
FROM foydalanuvchilar;

Natija:

ism yosh toifa
Farrux 26 Voyaga yetgan
Master Sherkulov 30 Voyaga yetgan
Aziz 17 Voyaga yetmagan

CASE ... WHEN ... THEN ... ELSE ... END — har qator uchun shartni tekshirdi va mos matnni qaytardi. Bu if-else ning SQL’dagi ko’rinishidir.

Bir necha shart

CASE bir necha WHEN bilan ko’p variantli mantiq yaratadi:

SELECT ism, yosh,
    CASE
        WHEN yosh < 20 THEN 'Yosh'
        WHEN yosh < 28 THEN 'O''rta'
        ELSE 'Katta'
    END AS guruh
FROM foydalanuvchilar;

Natija:

ism yosh guruh
Farrux 26 O’rta
Master Sherkulov 30 Katta
Aziz 17 Yosh

Shartlar yuqoridan pastga tekshirildi va birinchi mos kelgani qaytarildi. Bu else if zanjiriga o’xshaydi.

NULL bilan ishlash

NULL — qiymat yo’qligini bildiradi. Uni tekshirish uchun = NULL emas, IS NULL ishlatiladi:

SELECT ism, shahar FROM foydalanuvchilar
WHERE shahar IS NULL;

Natija:

ism shahar
Master Sherkulov NULL

Diqqat: WHERE shahar = NULL ishlamaydiNULL bilan solishtirishda doim IS NULL yoki IS NOT NULL ishlatiladi. Bu SQL’ning muhim noziklik.

COALESCE — NULL o’rniga qiymat

COALESCE funksiyasi NULL qiymatni boshqa qiymat bilan almashtiradi. Bu bo’sh maydonlarni chiroyli ko’rsatishda foydali:

SELECT ism, COALESCE(shahar, 'Kiritilmagan') AS shahar
FROM foydalanuvchilar;

Natija:

ism shahar
Farrux Toshkent
Master Sherkulov Kiritilmagan
Aziz Samarqand

COALESCE(shahar, 'Kiritilmagan') — agar shahar NULL bo’lsa, uning o’rniga “Kiritilmagan” ko’rsatdi. Bu foydalanuvchiga bo’sh joy o’rniga tushunarli matn ko’rsatishda ishlatiladi.

Xulosa

Bu bo’limda CASE bilan shartli mantiqni, bir necha WHEN ni, NULL ni IS NULL bilan tekshirishni va COALESCE bilan almashtirishni ko’rib chiqdik. Eng muhim eslatma: NULL ni IS NULL bilan tekshiring. Keyingi darsda protseduralarga o’tamiz.