id value 1 1,2,3,4 2 2,3,4
所以我想得到这个结果:
id sum 1 10 2 9
我可以在SQL(MySQL)中做到吗?
您可以更动态地创建函数。请按照以下步骤
创建一个给出逗号分隔值之和的函数
CREATE FUNCTION GetToalOfCommaSeperatedVal
( @commaSeperatedVal varchar(100) ) RETURNS int AS BEGIN
declare @sum int DECLARE @x XML SELECT @x = CAST('<A>'+ REPLACE(@commaSeperatedVal,',','</A><A>')+ '</A>' AS XML) SELECT @sum=sum(t.value('.', 'int')) FROM @x.nodes('/A') AS x(t)
return @sum END GO
以以下方式执行“仅选择”命令
select id,dbo.GetToalOfCommaSeperatedVal(value) from YOUR_TABLE