带有ISNULL的SQL CAST导致转换失败

时间:2018-07-11 23:51:36

标签: sql-server

我有一个可为空的数字列,不幸的是,它在数据库中被声明为varchar,所以我想将NULL转换为0。这样做就可以实现。

select ISNULL(col, '0')  from table;

所以现在没有null的可能性了,然后我想将列转换为实际的int值,所以我尝试将其包装。

select CAST(ISNULL(col, '0') AS INT) from table

运行该命令时,出现转换错误,如下所示。我不明白为什么,或者如何解决这个问题:

  

将varchar值'NULL'转换为数据类型int时转换失败。

1 个答案:

答案 0 :(得分:1)

尝试这样:将您的ISNULL语句置于外部

SELECT ISNULL(TRY_CAST(col AS INT),0) AS [col]
FROM SAMPLE_TAB;

如果这没有帮助,请注释您的SQL版本。