Column1 Column2 Column3 Column4
WEST WHEAT 0 abc
WEST WHEAT 0 def
WEST WHEAT 1 ghi
WEST WHEAT 1 jkl
WEST WHEAT 2 mno
WEST WHEAT 2 pqr
上表中的数据基于列Column1,Column2和Column3进行分组, 和Column4必须连接。
预期的连接Column4输出如下:
abc,def
abc,def,ghi,jkl
abc,def,ghi,jkl,mno,pqr
使用以下代码将Column4值连接起来
STUFF((SELECT DISTINCT ',' + "Column4" FROM "Query2" Q2 WHERE Q1."Column1"=Q2."Column1" and MainQuery."Column2"=Q2."Column2" AND MainQuery."Column3"=Q2."Column3" for xml path('')),1,1,'')
但所取得的成果是:
abc,def
ghi,jkl
mno,pqr
以前的组值必须与当前组值连接。
任何人都可以帮助实现SQL Server中的预期输出。
答案 0 :(得分:0)
您可以将MainQuery."Column3" = Q2."Column3"
更改为MainQuery."Column3" >= Q2."Column3"
因此,您的联合相关查询将变为
STUFF((SELECT DISTINCT ',' + "Column4" FROM "Query2" Q2 WHERE Q1."Column1"=Q2."Column1" and MainQuery."Column2"=Q2."Column2" AND MainQuery."Column3" >= Q2."Column3" for xml path('')),1,1,'')
这将获得相同Column3
和Column1
Column2
值