【直接结合具体的实例嘉滤淀驺】
今天做数据分析的时候。
要算一个数据就是 每个单位人均资产在5万的过滤出来
数据表中 资产有的为0,人数有的为0.那么如果学过数学的都知道,0不能做除数。
【结构如图:】
那么。可以通过2种方式解决。
第一种 :
人数为零或是支出为零的话单独作为一种情况。
人数不能零的单独作为一种计算。
所以:
select mingcheng,zichan/qimorenshu as '人均资产' from dbo.a0414_sileicuowo
where (qimorenshu<>0) and zichan/qimorenshu<50000
以上两种情况相加即可。【注意:zichan,qimorenshu 字段 默认值设置为0,非NULL】
还可以使用
set ansi_warnings off
SET ARITHABORT off
SET ARITHIGNORE on
select mingcheng,zichan/qimorenshu as '人均资产' from dbo.a0414_sileicuowo
where zichan/qimorenshu<50000 --or (zichan/qimorenshu is null)
上面的黑体,表示 关闭运算中断。
也就是说 在
set ansi_warnings off
SET ARITHABORT off
SET ARITHIGNORE on
后 那么select 0/0 结果是null.
如图所示:
所以。也可以解决问题。
------------------------------------------
【注意:】
set ansi_warnings off
SET ARITHABORT off
SET ARITHIGNORE on
运行后,默认是关闭了运算检查中断。如果想恢复正常
需要
set ansi_warnings ON
SET ARITHABORT ON
SET ARITHIGNORE on
切记切记。