new*_*bie 1 sql t-sql sql-server
我有由NULL组成的字段数据.我尝试通过将NULL数据设置为0.00来获取SUM数据.
我用
从t中选择Sum(cast(ISNULL(金额,0)为金钱))
在这里演示
如何避免此错误"无法将char值转换为money.char值的语法不正确"
您的NULL值不是空值,而是包含单词"NULL"的字符串:
当您NULL根据演示将其更改为真实时,这将在没有ISNULL()自聚合忽略NULL值的情况下工作:
SELECT SUM(CAST(amount as MONEY))
FROM t
Run Code Online (Sandbox Code Playgroud)
如果您需要解决该字符串值,请使用REPLACE()而不是ISNULL():
SELECT SUM(CAST(REPLACE(amount,'NULL',0) as MONEY))
FROM t
Run Code Online (Sandbox Code Playgroud)
最佳做法当然是不将数字存储为字符串,但遗憾的是我们无法始终控制我们获得的数据.