新手 请教!
SQL中
select (case when a.dh like ('bj1%' or'bj2%') then round(isnull(q.sl)*14/25-c.kc,0) else '无法计算' end ) from table a...
得到以下错误
消息 8114,级别 16,状态 5,第 2 行
从数据类型 varchar 转换为 numeric 时出错。
请问各位以上CASE WHEN 表达式应该怎么写???
------最佳解决方案--------------------select case when a.dh like 'bj1%' OR a.dh like 'bj2%' then CONVERT(VARCHAR(10),round(isnull(q.sl)*14/25-c.kc,0)) else '无法计算' end from table a
------其他解决方案--------------------select (case when a.dh like ('bj1%' or'bj2%') then cast(round(isnull(q.sl)*14/25-c.kc,0) as varchar(20)) else '无法计算' end )
------其他解决方案--------------------因为else后面的字符串,所以最终then后面的那串计算会隐式转换成字符串,就报错了,另外,你的括号写多了几个
------其他解决方案--------------------学习了 非常感谢楼上 各位