一尘不染

SQL Server CONVERT(NUMERIC(18,0),'')失败,但是CONVERT(INT,'')成功吗?

sql

PRINT CONVERT(NUMERIC(18,0), '')

产生 Error converting data type varchar to numeric.

然而,

PRINT CONVERT(INT, '')

产生 0没有错误…

问题:是否有一些SQL Server标志用于此操作,或者我需要为每个varchar到数字转换做大小写语句吗?(除了显而易见的原因是什么?)


阅读 113

收藏
2021-05-23

共1个答案

一尘不染

使用ISNUMERIC

declare @a varchar(20)
set @a = 'notanumber'
select case when isnumeric(@a) = 0 then 0 else convert(numeric(18,0),@a) end
2021-05-23