Создать вычисляемый столбец по дате и времени

StackOverflow https://stackoverflow.com/questions/441869

Вопрос

В моей таблице 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))
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top