我的SQL Server 2005表中有一个可为空的DateTime列,名为DateTimeDeleted。
我希望有一个BIT类型的计算列,如果DateTimeDeleted不为null,则为1,否则为0.但是,我似乎无法使公式的语法正确。
我试过了:
(TsDeleted IS NULL) = 0
但它给我一个语法错误。
帮助! :)
答案 0 :(得分: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)
答案 1 :(得分:2)
我认为这应该有效:
update table
set IsDeleted = case when DateTimeDeleted is null then 0 else 1 end
答案 2 :(得分:-1)
这将起作用,如果它不为空则基本上它会自动除以然后如果它为NULL则将0除以1
CONVERT(INT,IsNULL(DateTimeDeleted,0))/CONVERT(INT,IsNULL(DateTimeDeleted,1))