2

我的 SQL Server 2005 表中有一个可以为空的 DateTime 列,名为 DateTimeDeleted。

我想要一个 BIT 类型的计算列,如果 DateTimeDeleted 不为空,则为 1,否则为 0。但是,我似乎无法正确获取公式的语法。

我试过了:

(TsDeleted IS NULL) = 0

但它给了我一个语法错误。

帮助!:)

4

3 回答 3

12
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)
于 2009-01-14T05:09:04.157 回答
2

我认为这应该有效:

update table
set IsDeleted = case when DateTimeDeleted is null then 0 else 1 end
于 2009-01-14T04:10:51.747 回答
-1

这将起作用,基本上,如果它不为空,它会自行除法,然后如果它为 NULL,则将 0 除以 1

CONVERT(INT,IsNULL(DateTimeDeleted,0))/CONVERT(INT,IsNULL(DateTimeDeleted,1))
于 2009-01-14T05:25:07.590 回答