第二种情况将数据类型varchar转换为数字时出错

时间:2015-05-13 17:37:42

标签: sql-server sql-server-2012

值存储在varchar中。我尝试检查值是否为数字然后转换为十进制,否则返回原始值。 如果我注释掉第二部分,第一个案例本身就可以正常工作。

CASE WHEN ISNUMERIC(Num) = 1 THEN CONVERT(DECIMAL(7,2),CONVERT(FLOAT, Num))
     WHEN ISNUMERIC(Num) = 0 THEN Num END,

1 个答案:

答案 0 :(得分:1)

问题是你要返回不同的类型。您需要将返回值转换为相同类型以进行安全查询。将小数转换回varchar,或者当num不是数字时返回0。