PRINT CONVERT(NUMERIC(18,0), '')
产生 Error converting data type varchar to numeric.
Error converting data type varchar to numeric.
然而,
PRINT CONVERT(INT, '')
产生 0没有错误…
0
问题:是否有一些SQL Server标志用于此操作,或者我需要为每个varchar到数字转换做大小写语句吗?(除了显而易见的原因是什么?)
使用ISNUMERIC
declare @a varchar(20) set @a = 'notanumber' select case when isnumeric(@a) = 0 then 0 else convert(numeric(18,0),@a) end