我有一张表,其中一列中的值由|分隔,我需要对这些值求和才能知道总值。示例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
Select * From [test_table] A Cross Apply ( Select SumTotal = sum(try_convert(int,value)) from string_split(Totals,'|') B1 ) B
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。