我有一个表,其中包含与序列号关联的 10 列浮动值。可以在每列中输入或不输入值。0 [零] 和 NULL 不是有效值。使用 SQL SERVER 2012。
我的问题是:如何检查给定特定序列号,这些值中没有一个是 0 或 NULL,如果所有值都存在,则返回 True,否则返回 False?请给我一些建议。谢谢
比你的努力应得的更多,但我很好奇。 强制转换为位使其成为 1 或 0,并且必须转换回 int 才能添加。
declare @T table (int1 int, int2 int);
insert into @T values (null, null), (null, 0), (0, null), (null, 1), (10, null), (0, 0)
, (1, 0), (1, 10), (10, 0), (10, 10), (-2, -2);
with cte as
( select int1, cast(cast(isnull(int1, 0) as bit) as int) tf1
, int2, cast(cast(isnull(int2, 0) as bit) as int) tf2
from @T
)
select cte.int1, cte.int2
, iif(tf1 + tf2 = 2, 1, 0) as rr
from cte;