SQL NULL Functions

در SQL، وقتی با مقادیر NULL سروکار داریم، از NULL Functions برای بررسی، جایگزینی یا مدیریت این مقادیر استفاده می‌کنیم.
چند تابع مهم وجود داره که رایج‌ترین‌ها هستند: ISNULL, COALESCE, NULLIF.

🔹 1️⃣ ISNULL (SQL Server)

  • برای جایگزین کردن مقدار NULL با مقدار دلخواه استفاده میشه.

SELECT ISNULL(column_name, replacement_value) AS new_column FROM table_name;

مثال:

جدول: Orders

order_idamount
1500
2NULL
3300
SELECT order_id, ISNULL(amount, 0) AS amount_filled FROM Orders;

📌 خروجی:

order_idamount_filled
1500
20
3300

🔹 2️⃣ COALESCE (SQL استاندارد)

  • مشابه ISNULL هست، ولی می‌تونه چند مقدار رو بررسی کنه و اولین مقدار غیر NULL رو برمی‌گردونه.

SELECT COALESCE(column1, column2, 'Default') AS result FROM table_name;

مثال:

SELECT COALESCE(amount, discount, 0) AS final_amount FROM Orders;

📌 اگر amount NULL باشه، discount بررسی میشه و در نهایت ۰ جایگزین میشه.

🔹 3️⃣ NULLIF

  • بررسی می‌کنه که آیا دو مقدار برابر هستن یا نه.

  • اگر برابر باشن → NULL برمی‌گردونه، در غیر این صورت مقدار اول.

SELECT NULLIF(column1, column2) AS result FROM table_name;

مثال:

SELECT NULLIF(amount, 0) AS amount_checked FROM Orders;

📌 اگر مقدار amount برابر ۰ باشه، نتیجه NULL میشه.

🔹 نکات مهم

  • ISNULL → فقط در SQL Server.

  • COALESCE → استاندارد SQL و در همه دیتابیس‌ها پشتیبانی میشه.

  • NULLIF → برای جلوگیری از تقسیم بر صفر یا بررسی مقادیر برابر کاربرد داره.

  • استفاده از این توابع باعث میشه نتایج کوئری‌ها پایدارتر و بدون NULL باشند.