在null的情况下将varchar转换为numeric

时间:2012-10-09 13:42:02

标签: sql casting int varchar

如果值为null,如何处理此转换,以便它不会给出错误“将数据类型varchar转换为数字时出错”。

convert(numeric(19,2), mdmaster.check_no)as checkNbr,

Thanx

2 个答案:

答案 0 :(得分:4)

您可以使用ISNULL

convert(numeric(19,2), ISNULL(mdmaster.check_no, 0))as checkNbr,

这会将任何NULL值转换为0.00

Here is a Live Demo

答案 1 :(得分:2)

您可以使用ISNUMERIC,如果为null,则返回0.00

DECLARE @t VARCHAR(50);
SELECT convert(numeric(19,2), ISNUMERIC (@t))as checkNbr

如果符合ms sql server

中的要求,您可以使用如下所示的方法
SELECT 
    CASE 
        WHEN Field NOT LIKE '%[^0-9]%'
        THEN CAST(Field AS INT)
        ELSE NULL 
    END