【发布时间】:2019-07-12 13:11:19
【问题描述】:
我得到一个字段值0+6+6+6+0+0+0 数据类型是varchar。我怎样才能得到它的总和。
我尝试转换为 int 但出现错误。
select cast('0+6+6+6+0+0+0' as int)
我想输出为18。
【问题讨论】:
-
您需要使用字符串拆分器,并根据
+拆分这些值。由于您不在 2016 年,我建议您使用 this one。然后,您只需使用SUM()。 -
这真的是一个简单的求和,还是您希望执行更复杂的计算?正如您现在所知,SQL Server 没有 Eval() 函数。也就是说,可能存在动态 SQL 替代方案。
-
老实说,我会先用棒球棒将一个 + 和一个数字一起存储在同一列中的数据库家伙。如果有人想要一个 +,他们可以连接一个。大声哭泣。
标签: sql-server tsql sql-server-2012