ISNULL - শুধুমাত্র এসকিউএল সার্ভারে উপলব্ধ। একে অপরের সাথে একটি নুল মান পরীক্ষার এবং প্রতিস্থাপনের অনুমতি দেয়।
COALESCE - এএনএসআই মান। আর্গুমেন্টের পরিবর্তনশীল দৈর্ঘ্যের সেটটিতে প্রথম অ-নাল মান সহ পরীক্ষার জন্য এবং কোনও নুল মান প্রতিস্থাপনের অনুমতি দেয়। এটিতে গুরুত্বপূর্ণ যে ডেটা টাইপ প্রবণতা উপাদানগুলি note
-- Conversion failed when converting the varchar value 'a' to data type int
SELECT COALESCE(CAST(NULL AS varchar(10)), 'a', 1)
-- Returns 1
SELECT COALESCE(CAST(NULL AS varchar(10)), 1, 'a')
উপরের উদাহরণে, 'এ' প্রথম অ-নাল মান তবে অক্ষরের ডেটাতে পূর্ণসংখ্যার চেয়ে কম অগ্রাধিকার থাকে।
আইএসএনএলএল বনাম কুলসেসের মধ্যে আরেকটি বিবেচনা হ'ল ইসনুলের ফলাফল নুল নয় বলে দৃ determined়প্রতিজ্ঞ হয়েছে যখন একটি কলের কলের ফলাফলটি ন্যূনযোগ্য। জেআরজে'র পোস্টটি অসম্পূর্ণ () <> কোয়েলস () দেখুন যদিও এটি একটি তুচ্ছ জিনিস মনে হতে পারে, ক্যোয়ারী অপ্টিমাইজার কলামের শূন্যতার ভিত্তিতে বিভিন্ন পরিকল্পনা করতে পারে।
আপনি আপনার isnull / coalesce / কেস এক্সপ্রেশনগুলির nullability সহজেই এটি dmo sys.dm_exec_describe_first_result_set এর মাধ্যমে চালিয়ে দেখতে পারেন
-- these all evaluate to not nullable (is_nullable = 0) because I'm not clever enough
DECLARE @sql nvarchar(4000) = N'
SELECT ISNULL(NULL, 1) AS I
, COALESCE(NULL, 1) AS C
, CASE WHEN NULL = NULL THEN NULL ELSE 1 END AS C1
'
SELECT
DMO.*
FROM
sys.dm_exec_describe_first_result_set(@sql, NULL, 0) AS DMO
CASE - এছাড়াও একটি এএনএসআই স্ট্যান্ডার্ড স্কেলারের ফাংশন। আমি আগের দু'এর তুলনায় CASE ব্যবহার করা দেখব যখন আমার একটি পরীক্ষা হয় যা সাধারণ স্কেলারে প্রকাশ করা যায় না তবে এটি একটি বেশ দুর্বল উত্তর, আমি স্বীকার করি।
COALESCE
প্রসারিত হয়CASE
তবে স্পষ্টতই একটিCASE
বিবৃতিতে আপনি নিজেকে লেখেন আপনিWHEN
শর্তে আরও নমনীয় হতে পারেন । জন্যISNULL
বনামCOALESCE
সম্পর্কিত / নকল?