开发者社区> 问答> 正文

如何对同一列中的值求和,并用“ |”分隔?

我有一张表,其中一列中的值由|分隔,我需要对这些值求和才能知道总值。示例5 | 4 | 3 =12。我认为如果替换| 对于+符号,应该可以使用。但这确实起作用。

这是我创建表的代码以及我用来求和的值。

CREATE TABLE [dbo].[test_table](
    [totals] [varchar](255) NULL
) ON [PRIMARY]
GO
--*******************
INSERT INTO [dbo].[test_table]
           ([totals])
  --   VALUES
           (
select ('1|5|13')
union
select ('1|5|13')
union
select ('0|0|2')
union
select ('1|1|7')
union
select ('1|1|13')
union
select ('1|1|13')
union
select ('0|0|3')
union
select ('0|0|1')
union
select ('0|0|4')
union
select ('1|1|9'))
GO

select 
tot
--sum(tot) as total
--CONVERT(numeric, tot)
from 
(
select totals,
replace(totals,'|','+') as tot
from test_table
) qry

展开
收起
祖安文状元 2020-01-04 15:18:23 1529 0
1 条回答
写回答
取消 提交回答
  • Select * From [test_table] A Cross Apply ( Select SumTotal = sum(try_convert(int,value)) from string_split(Totals,'|') B1 ) B

    2020-02-09 10:39:41
    赞同 展开评论 打赏
问答分类:
Go
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载