检查数据集是否为空或零

时间:2018-03-23 13:12:36

标签: sql sql-server null

我有一个表,其中包含10个与序列号关联的浮点值列。 可以在每列中输入或不输入值。 0 [零]和NULL不是有效值。 使用SQL SERVER 2012。

我的问题是: 如何检查给定的特定序列号,这些值都不是0或NULL,如果所有值都存在则返回True,否则返回False? 请给我一些建议。 谢谢

1 个答案:

答案 0 :(得分:0)

超过你的努力值得,但我很好奇。强制转换为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;