【发布时间】:2019-08-13 08:52:25
【问题描述】:
我正在尝试在我的数据库中容纳一些包含字符串“未知”的流氓值,我想将它们设置为 0,然后将其余部分相加。但由于某种原因,这并没有发生。这是我所拥有的 -
值 - VARCHAR(30) -
3
0.1
2
16
2
5
2
Unknown
2.4
7
Unknown
这是我的演员、总和、案例
Cast(sum(case when stake = 'Unknown' then 0 else stake end) as float) as totalStake
但我收到此错误 - 将 varchar 值“0.1”转换为数据类型 int 时转换失败。
帮助!
谢谢
【问题讨论】:
-
你为什么首先将数字数据存储为
varchar?将数值数据存储为错误的数据类型存在很多问题。例如,varchar'2'大于'199','1'+'2'等于'12'。你真的应该在这里修复你的数据类型。
标签: sql sql-server case