如果这个值为空,我该如何处理这个转换,以避免出现“将数据类型 varchar 转换为 numeric 时出错”的错误。
convert(numeric(19,2), mdmaster.check_no)as checkNbr,
谢谢。
ISNULL
函数:convert(numeric(19,2), ISNULL(mdmaster.check_no, 0))as checkNbr,
这将使任何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
ISNUMERIC (mdmaster.check_no, '')
。你提供的参考文献显示只有一个参数,但你使用了两个。 - LittleBobbyTables - Au Revoir
mdmaster.check_no
是 NULL,那么你实际上有的是convert(numeric(19,2), '')
,它仍然会返回“将数据类型 varchar 转换为 numeric 时出错”。 - LittleBobbyTables - Au Revoir0
现在可以正常工作了。请查看我的修改。 - Mahmoud Gamal