Создать вычисляемый столбец по дате и времени
-
22-07-2019 - |
Вопрос
В моей таблице SQL Server 2005 есть столбец DateTime, допускающий значение NULL, который называется 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, если оно равно NULL.
CONVERT(INT,IsNULL(DateTimeDeleted,0))/CONVERT(INT,IsNULL(DateTimeDeleted,1))
Не связан с StackOverflow