关于标准SQL与MS SQL中的count()聚合函数的区别?该如何处理
关于标准SQL与MS SQL中的count()聚合函数的区别?在Begining Sql中对count的描述的是:在圆括号内插入需要
关于标准SQL与MS SQL中的count()聚合函数的区别?
在<Begining Sql>中对count的描述的是:
在圆括号内插入需要统计的数目的列的名字.结果集中返回的值是列中非NULL值的数目.
如果按上面的说法的话,在MS SQL SERVER中执行下面的语句应该返回非NUUL的记录数值33.
SQL code use pubsgoselect count(minit) from employee --pubs 的employee表中的minit字段的是记录数为43,其中有十个为null的记录.
但实际上返回为43.
这是为什么呢?
是标准的SQL与MS SQL的区别吗?
[解决办法]因为表中那10条记录的 minit 列值不为NULL,而是空字符串'',在SQL Server中,NULL与''并不等价。
[解决办法]这10个你认为是null的,实际是' ',即一个空格,所以不是null值
[解决办法]子陌红尘..我看了SQL Server联机丛书中给出的employee表.确实是为NULL值.并非你说的 ' '.
————————————————————————————————————————————————————————
我回帖之前已经查过pubs..employee表,核对过数据。