我有一列 varchar 数据类型填充了混合值,例如 1.2、5.33,同时还有 NULL 和 EMPTY 字符串。我想将所有值转换为十进制,同时将 NULL 和 EMPTY 字符串视为 0。
我可以使用如下所示的 CONVERT 函数更改 NULL 或 EMPTY 字符串。像这样,我用 varhcar 0 替换 NULL 和 EMPTY 字符串。
CASE WHEN Column1 = '' OR Column1= NULL THEN '0' ELSE Column1 END AS 'NewColumn1'
但是,我想要做的是能够将此数据(NewColumn1 的输出)转换为十进制,但是当我将 CASE 语句放入 CONVERT 或 CAST 函数时,我会遇到错误。
我还尝试了以下方法。CONVERT(DECIMAL(10,4), ISNULL(Column1, '0'))
但是它失败了,因为我在这里没有处理 EMPTY 字符串。
任何想法我该如何解决这个问题。