在SO上进行了搜索和搜索,无法弄清楚 尝试将每个字段作为FLOAT进行铸造都无济于事,转换没有给我任何进一步的帮助。 如何获取以下case子句以返回THEN部分中所述的值?
错误:消息8114,级别16,状态5,行1将数据类型varchar转换为float时出错。
我的SQL查询的错误部分:
When cust_trendd_w_costsv.terms_code like '%[%]%' and (prod.dbo.BTYS2012.average_days_pay) - (substring(cust_trendd_w_costsv.terms_code,3,2)) <= 5 THEN prod.dbo.cust_trendd_w_costsv.terms_code
average_days_pay = float terms_code = char
尝试使用ISNUMERIC处理无法转换的字符串:
When cust_trendd_w_costsv.terms_code like '%[%]%' and (prod.dbo.BTYS2012.average_days_pay) - (case when isnumeric(substring(cust_trendd_w_costsv.terms_code,3,2))=1 then cast(substring(cust_trendd_w_costsv.terms_code,3,2) as float) else 0 end) <= 5 THEN prod.dbo.cust_trendd_w_costsv.terms_code