我运行如下的语句:
select count(*) from serv4
union all
SELECT count(*) FROM SERV4 WHERE CUST_GP in ('sk','dk')
union all
SELECT count(*) FROM SERV4 WHERE CUST_GP!='sk' AND CUST_GP!='dk'
-----------
62123
7748
0(所影响的行数为 3 行)
--------------------------
问题来了,既然serv4表的所有记录条数是62123,而符合cust_gp 为 gk 或 dk的值的记录条数为7748,那么cust_gp 的值 不为sk并且不为dk的值应该等于 62123-7748=54375,可结果却等于0 ,实在是奇怪!
select count(*) from serv4
union all
SELECT count(*) FROM SERV4 WHERE CUST_GP in ('sk','dk')
union all
SELECT count(*) FROM SERV4 WHERE CUST_GP!='sk' AND CUST_GP!='dk'
-----------
62123
7748
0(所影响的行数为 3 行)
--------------------------
问题来了,既然serv4表的所有记录条数是62123,而符合cust_gp 为 gk 或 dk的值的记录条数为7748,那么cust_gp 的值 不为sk并且不为dk的值应该等于 62123-7748=54375,可结果却等于0 ,实在是奇怪!
union all
SELECT count(*) FROM SERV4 WHERE CUST_GP in ('sk','dk')
union all
--SELECT count(*) FROM SERV4 WHERE CUST_GP!='sk' AND CUST_GP!='dk'
SELECT count(*) FROM SERV4 WHERE CUST_GP not in ('sk','dk')
查询前设置一下,不然你所有的东西跟null比较返回的都是nullSET ANSI_NULLS OFF
GO
select count(*) from serv4
union all
SELECT count(*) FROM SERV4 WHERE CUST_GP in ('sk','dk')
union all
SELECT count(*) FROM SERV4 WHERE CUST_GP!='sk' AND CUST_GP!='dk'
SET ANSI_NULLS ON
GO
应该怎样设置啊?