我有一个可为空的数字列,不幸的是,它在数据库中被声明为varchar
,所以我想将NULL
转换为0。这样做就可以实现。
select ISNULL(col, '0') from table;
所以现在没有null
的可能性了,然后我想将列转换为实际的int值,所以我尝试将其包装。
select CAST(ISNULL(col, '0') AS INT) from table
运行该命令时,出现转换错误,如下所示。我不明白为什么,或者如何解决这个问题:
将varchar值'NULL'转换为数据类型int时转换失败。
答案 0 :(得分:1)
尝试这样:将您的ISNULL
语句置于外部
SELECT ISNULL(TRY_CAST(col AS INT),0) AS [col]
FROM SAMPLE_TAB;
如果这没有帮助,请注释您的SQL版本。