相关疑难解决方法(0)

SQL Server中的自定义聚合函数(concat)

问题:我想编写一个自定义聚合函数,用于连接group by上的字符串.

这样我就能做到

SELECT SUM(FIELD1) as f1, MYCONCAT(FIELD2)  as f2
FROM TABLE_XY
GROUP BY FIELD1, FIELD2
Run Code Online (Sandbox Code Playgroud)

我找到的只是SQL CRL聚合函数,但我需要SQL,没有CLR.



编辑:1
查询应如下所示:

   SELECT SUM(FIELD1) as f1, MYCONCAT(FIELD2)  as f2
    FROM TABLE_XY
    GROUP BY FIELD0
Run Code Online (Sandbox Code Playgroud)



编辑2:
没有CLR,这是不可能的.
但是,可以修改旁观者的子选择答案,因此不会对特殊字符进行XML编码.

对此的微妙更改是在"FOR XML PATH"之后添加:

 TYPE 
                  ).value('.[1]', 'nvarchar(MAX)') 
Run Code Online (Sandbox Code Playgroud)

这里举几个例子

DECLARE @tT table([A] varchar(200), [B] varchar(200));

INSERT INTO @tT VALUES ('T_A', 'C_A');
INSERT INTO @tT VALUES ('T_A', 'C_B');
INSERT INTO @tT VALUES ('T_B', 'C_A');
INSERT INTO @tT VALUES ('T_C', 'C_A');
INSERT INTO @tT VALUES ('T_C', 'C_B');
INSERT INTO …
Run Code Online (Sandbox Code Playgroud)

sql sql-server-2005 aggregate-functions aggregation sql-server-2008

23
推荐指数
3
解决办法
4万
查看次数