select
XMLAGG (XMLELEMENT (E, Customer_data, ',').EXTRACT ('//text()') ORDER BY Customer_data).GETCLOBVAL (),
customer_id
from customer_table
这基本上组合了customer_table中具有相同customer_id的所有行。这适用于Oracle,并且对它可以处理的行大小没有任何限制(大于4000)。
我需要在MS SQL Server中使用类似的功能,它会为我做同样的事情。我尝试过使用'STUFF'功能,但它有4000个字符的限制。 请帮忙。
答案 0 :(得分:1)
STUFF没有4000个字符的限制。 EG
with q as
(
select o.name
from sys.objects o, sys.columns c
)
select
datalength(
STUFF((Select ','+ q.Name
from q
FOR XML PATH('')),1,1,'')
)
q
输出
q
--------------------
2624410
(1 row(s) affected)