我的 SQL Server 2005 表中有一个可以为空的 DateTime 列,名为 DateTimeDeleted。
我想要一个 BIT 类型的计算列,如果 DateTimeDeleted 不为空,则为 1,否则为 0。但是,我似乎无法正确获取公式的语法。
我试过了:
(TsDeleted IS NULL) = 0
但它给了我一个语法错误。
帮助!:)
我的 SQL Server 2005 表中有一个可以为空的 DateTime 列,名为 DateTimeDeleted。
我想要一个 BIT 类型的计算列,如果 DateTimeDeleted 不为空,则为 1,否则为 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
这将起作用,基本上,如果它不为空,它会自行除法,然后如果它为 NULL,则将 0 除以 1
CONVERT(INT,IsNULL(DateTimeDeleted,0))/CONVERT(INT,IsNULL(DateTimeDeleted,1))