SQL 遇到以零作除数错误——用NULLIF()函数处理为0的分母,字符串分割
-
with tb1 as(select 1 a ,0 b)select ISNULL((a*1.0 / NULLIF(b,0)) ,0) AB from tb1
说明:
a必须乘以1.0 否则 with tb1 as(select 1 a ,2 b) 还是0
NULLIF(b,0) ,是判断 b 是不是等于 0,如果 b = 0,则 a / b 这个算式返回 NULL值
ISNULL(null,0),就更简单了,如果 NULLIF 返回 NULL值,那就直接给个默认值 0
没数据 总比报错好.....
SQL 字符串分割
select PersonLiable,
(CASE WHEN ISNULL(PersonLiable,'')='null' or ISNULL(PersonLiable,'')='' THEN PersonLiable ELSE
(SELECT STUFF(
(SELECT ','+A FROM
(SELECT LEFT(C,CHARINDEX('-',C,1)-1) AS A FROM
(SELECT [data] as c FROM SplitStr(PersonLiable,',')) T) M FOR XML PATH('')),1,1,'')) END ) as PersonLiable
from IPQC_Form where id in(121,122,123)结果
原格式:汪成--941034--白班--Level1,张仲宏--890939--夜班--Level1 分割后:汪成,张仲宏
汪成--941034--白班--Level1 分割后: 汪成
张仲宏--890939--夜班--Level1 分割后: 张仲宏