PRINT CONVERT(NUMERIC(18,0), '')
产生Error converting data type varchar to numeric.
然而,
PRINT CONVERT(INT, '')
产生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

关于sql - SQL Server CONVERT(NUMERIC(18,0), '')失败,但是CONVERT(INT, '')成功吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1810073/

10-13 09:45