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

标签 sql sql-server numeric-conversion

打印转换(NUMERIC(18,0), '')

产生将数据类型 varchar 转换为数字时出错。

但是,

打印转换(INT, '')

产生0,没有错误...

问题:是否有一些 SQL Server 标志用于此目的,或者我需要为每个 varchar 到数字的转换执行 case 语句? (除了明显的原因?)

最佳答案

使用ISNUMERIC

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

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

相关文章:

VS 上的 sql INNER JOIN 表变量。内部连接(选择)开启

mysql - 错误号 : 150 "Foreign key constraint is incorrectly formed"

sql - 选择时间范围外的不同行

sql - 比较日期然后插入数据

C++如何为 float 设置固定的小数精度

XSLT 将数字作为字符串进行比较

sql - SQLite 中的 MD5 函数

c# - Entity Framework - 具有多对多表的用户和组

c - 为什么 0 < -0x80000000?

sql-server - 在 Azure 突触分析中创建日期维度