小编典典

如何在SQL中加逗号分隔的字符串?

sql

id value
1 1,2,3,4
2 2,3,4

所以我想得到这个结果:

id   sum
1     10
2     9

我可以在SQL(MySQL)中做到吗?


阅读 184

收藏
2021-04-07

共1个答案

小编典典

您可以更动态地创建函数。请按照以下步骤

  1. 创建一个给出逗号分隔值之和的函数

    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

  2. 以以下方式执行“仅选择”命令

    select id,dbo.GetToalOfCommaSeperatedVal(value) from YOUR_TABLE
    
2021-04-07