2

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

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

谢谢

4

2 回答 2

4

您可以使用ISNULL

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

这将使任何NULL值转换为0.00.

这是一个现场演示

于 2012-10-09T13:43:32.570 回答
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
于 2012-10-09T13:47:51.543 回答