在日期时间创建一个计算列
-
22-07-2019 - |
题
我在SQL Server 2005中的表可为空的DateTime列称为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
这将工作,基本上它本身并分频,如果它不是空,然后通过1除以0,如果它是NULL
CONVERT(INT,IsNULL(DateTimeDeleted,0))/CONVERT(INT,IsNULL(DateTimeDeleted,1))
不隶属于 StackOverflow