SQL Server محسوبة بناء جملة صيغة العمود
-
19-09-2019 - |
سؤال
أريد استخدام عمود بت محسوب سيكون صحيحا إذا كان عمود آخر في الجدول غير فارغ. ما هي الصيغة الصحيحة لهذا؟
HasLabel = computed column (bit)
Label = varchar NULL
الصيغة التالية غير صحيحة. - ماذا ينقصني؟
صيغة haslabel = Label IS NOT NULL
المحلول
يجب أن يؤدي العمود المحسوب إلى إرجاع قيمة، بينما كنت تفعل مقارنة فقط. جرب هذا بدلا من ذلك:
case when label is null then 0 else 1 end
لن يفهم SQL Server هذا كعمود غير ظهور. للتعامل مع ذلك، قم بتغيير الحساب إلى:
isnull(case when label IS NULL then 0 else 1 end, 0)
لا تنتمي إلى StackOverflow