select (case when col2=0 then 0 else col1/col2 end) As col from table ....
解决方案 »
- 使用Sql Server 2005还原 2000的备份数据库时,报备份集中的数据库备份与现有的数据库不同的错误.
- 请问怎样在sqlserver2000本地让多个同名数据库并存
- sql存储过程中 给变量赋值的关键字“select"和“set"有什么区别吗
- 关于SQL2008
- 给分! 初学者,有点难,SQL安装问题,请大侠赐教
- m-of-n 冗余存储结构是怎么样的,哪里有资料可以查。
- 如何将存储过程中执行的sql语句保存到文本文件中 ?
- 向数据库插入数据后,如何返回插入数据所在的标示值?
- 在PB中如何使用SQL Server的数据库
- 请问:何谓编程思想,以及编程方法?
- 数据的导入和导出的问题
- SQL SERVER中,MDX的简单问题。
else column2/column1
--col2 为除数的列,col1为被除列
select (case when (col2 > 0 or col2 < 0 ) then col1/col2 else null end) As col from tablename
如果 SET ARITHABORT 为 ON,则这些错误情况将导致查询或批处理终止。如果在事务内发生错误,则回滚事务。如果 SET ARITHABORT 为 OFF 并且发生了这些错误之一,则显示一条警告消息,并给算术运算的结果赋以空值。SET ARITHIGNORE { ON | OFF }注释
SET ARITHIGNORE 设置仅控制是否返回错误信息。不论该设置是什么,Microsoft® SQL Server™ 都将在包含溢出或被零除错误的计算中返回 NULL。可以使用 SET ARITHABORT 设置确定是否终止查询。该设置不影响在 INSERT、UPDATE 和 DELETE 语句执行过程中发生的错误。如果 SET ARITHABORT 或 SET ARITHIGNORE 为 OFF,并且 SET ANSI_WARNINGS 为 ON,则当遇到被零除或溢出错误时,SQL Server 仍返回错误信息。SET ARITHIGNORE 的设置是在执行或运行时设置,而不是在分析时设置。
when col2 is null then 你对除法的处理
when col2<>0 then col1/col2
end as col_chu