В моей таблице SQL Server 2005 есть столбец DateTime со значением NULL, называемый DateTimeDeleted.
Я хотел бы иметь вычисляемый столбец типа BIT, равный 1, если DateTimeDeleted не равен NULL, в противном случае - 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, если оно равно NULL
CONVERT(INT,IsNULL(DateTimeDeleted,0))/CONVERT(INT,IsNULL(DateTimeDeleted,1))