SQL NULL funksiyalari


baham ko'ring

SQL COALESCE(), IFNULL(), ISNULL() va NVL() funksiyalari

NULL qiymatlarni o‘z ichiga olgan operatsiyalar ba’zan kutilmagan natijalarga olib kelishi mumkin.

SQL’da NULL qiymatlar bilan ishlash uchun bir nechta o‘rnatilgan funksiyalar mavjud, ulardan eng keng tarqalganlari:

  • COALESCE() - afzal qilingan standart. (IN MySQL, SQL Server va Oracle ishlaydi)
  • IFNULL() - (MySQL)
  • ISNULL() - (SQL Server)
  • NVL() - (Oracle)
  • IsNull() - (MS Access)

Eslatma: NULL qiymati ma’lumotlar bazasi maydonidagi noma’lum yoki yetishmayotgan ma’lumotni bildiradi. Bu qiymatning o‘zi emas, balki ma’lumot yo‘qligini bildiruvchi o‘rinbosardir.


Demo ma’lumotlar bazasi

Bizda quyidagi "Products" jadvali bor deb faraz qilaylik:

PId ProductName Price InStock InOrder
1 Jarlsberg 10.45 16 15
2 Mascarpone 32.56 23 null
3 Gorgonzola 15.67 9 20

"InOrder" ustuni ixtiyoriy va NULL qiymatlarni o‘z ichiga olishi mumkin.

Endi quyidagi SQL operatori (so‘rovi)ga qarang:

SELECT ProductName, Price * (InStock + InOrder)
FROM Products;

Eslatma: Yuqoridagi SQL’da, agar "InOrder" qiymatlaridan birortasi NULL bo‘lsa, natija NULL bo‘ladi!



COALESCE() funksiyasi

COALESCE() funksiyasi potentsial NULL qiymatlarni qayta ishlash uchun afzal qilingan standartdir.

COALESCE() funksiyasi qiymatlar ro‘yxatidagi NULL bo‘lmagan birinchi qiymatni qaytaradi.

COALESCE() funksiyasi MySQL, SQL Server va Oracle’da ishlaydi (MS Access’da ishlamaydi).

Sintaksis

COALESCE(val1, val2, ...., val_n)

Bu yerda NULL qiymatlarni 0 bilan almashtirish uchun COALESCE() funksiyasidan foydalanamiz:

SELECT ProductName, Price * (InStock + COALESCE(InOrder, 0))
FROM Products;

IFNULL() funksiyasi (MySQL)

MySQL IFNULL() funksiyasi NULLni belgilangan qiymat bilan almashtiradi.

Sintaksis

IFNULL(expr, alt)

Bu yerda NULL qiymatlarni 0 bilan almashtiramiz:

SELECT ProductName, Price * (InStock + IFNULL(InOrder, 0))
FROM Products;

ISNULL() funksiyasi (SQL Server)

SQL Server ISNULL() funksiyasi NULLni belgilangan qiymat bilan almashtiradi.

Sintaksis

ISNULL(expr, alt)

Bu yerda NULL qiymatlarni 0 bilan almashtiramiz:

SELECT ProductName, Price * (InStock + ISNULL(InOrder, 0))
FROM Products;

NVL() funksiyasi (Oracle)

Oracle NVL() funksiyasi NULLni belgilangan qiymat bilan almashtiradi.

Sintaksis

NVL(expr, alt)

Bu yerda NULL qiymatlarni 0 bilan almashtiramiz:

SELECT ProductName, Price * (InStock + NVL(InOrder, 0))
FROM Products;

IsNull() funksiyasi (MS Access)

MS Access IsNull() funksiyasi ifoda NULL bo‘lsa TRUE, aks holda FALSE qaytaradi.

Sintaksis

IsNull(expr)

MS Access IIf() funksiyasi ifodani baholashga qarab ikki qismdan birini qaytaradi.

Sintaksis

IIf(expr, truepart, falsepart)
  • expr - Majburiy. Baholash uchun ifoda
  • truepart - Agar ifoda rost bo‘lsa, qaytariladigan qiymat
  • falsepart - Agar ifoda False bo‘lsa, qaytariladigan qiymat

Bu yerda NULL qiymatlarni 0 bilan almashtiramiz:

SELECT ProductName, Price * (InStock + IIf(IsNull(InOrder), 0, InOrder))
FROM Products;



W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!