إنشاء عمود محسوب على التاريخ والوقت
-
22-07-2019 - |
سؤال
ولدي عمود التاريخ والوقت قيم الفارغة في بلدي الجدول SQL خادم 2005 دعا DateTimeDeleted.
وأود أن يكون لها نوع BIT عمود محسوب التي هي 1 إذا DateTimeDeleted ليس لاغية، وإلا 0. ومع ذلك، وأنا لا يمكن أن يبدو للحصول على بناء جملة صيغة صحيحة.
ولقد حاولت:
(TsDeleted IS NULL) = 0
ولكن من يعطيني خطأ في بناء الجملة.
ومساعدة! :)
المحلول
Alter Table MyTableName
Add IsDeleted As
(Case When [DateTimeDeleted] Is Null
Then (0) Else (1) End)
وهذا سوف يظهر كعدد ... إذا كنت تريد حقا أن يكون قليلا، ثم:
Alter Table MyTableName
Add IsDeleted As
cast( (Case When [DateTimeDeleted] Is Null
Then (0) Else (1) End) as Bit)
نصائح أخرى
وأعتقد أن هذا يجب أن تعمل:
update table
set IsDeleted = case when DateTimeDeleted is null then 0 else 1 end
وهذا سيعمل، في الأساس هو الحال فجوة في حد ذاته إذا لم يكن لاغيا ومن ثم تقسيم 0 من 1 اذا كان خالي
CONVERT(INT,IsNULL(DateTimeDeleted,0))/CONVERT(INT,IsNULL(DateTimeDeleted,1))
لا تنتمي إلى StackOverflow