select (case when col2=0 then 1 else col1/col2 end) As col from table ....
case when column1=0 then null else column2/column1
--本例返回col1/col2 --col2 为除数的列,col1为被除列 select (case when (col2 > 0 or col2 < 0 ) then col1/col2 else null end) As col from tablename
SET ARITHABORT { ON | OFF }注释 如果 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 的设置是在执行或运行时设置,而不是在分析时设置。
case when col2=0 then 你对除法的处理 when col2 is null then 你对除法的处理 when col2<>0 then col1/col2 end as col_chu
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