SQL Server تحقق من ISNULL وللصفخ
-
06-09-2019 - |
سؤال
لدي ما يلي:
set @SomeVariable = @AnotherVariable/isnull(@VariableEqualToZero,1) - 1
إذا كانت VariableAqualtozero NULL، فهي تستبدل 1. أحتاجها إلى استبدال 1 إذا variablequaltozero = 0 كذلك. كيف أقوم بهذا العمل؟
المحلول
SET @SomeVariable = @AnotherVariable / COALESCE(
CASE
WHEN @VariableEqualToZero = 0 THEN 1
ELSE @VariableEqualToZero
END, 1) - 1
نصائح أخرى
إذا كنت تستخدم SQL Server، فربما يمكنك استخدام عبارة Nullif؟ (أي تعيين القيمة إلى NULL إذا كان 0 ثم تعيينه إلى 1 إذا كان ذلك فارغا - يجب أن يمسك لكل من 0 و Nulls
SET @SomeVariable = @AnotherVariable/ISNULL(NULLIF(@VariableEqualToZero,0),1) - 1
set @SomeVariable = @AnotherVariable /
(case when isnull(@VariableEqualToZero, 0) = 0 then 1 else
@VariableEqualToZero end) - 1
تستخدم حالة
بدلا من
ISNULL(@VariableEqualToZero,1)
استعمال
CASE WHEN @VariableEqualToZero IS NULL OR @VariableEqualToZero = 0 THEN 1 ELSE @VariableEqualToZero END
Coalesce و ISNULL هي أساسا فقط اختصارات لبيان القضية. يمكنك استشارة المساعدة في بناء جملة القضية.
لا تنتمي إلى StackOverflow