我有一张桌子:
Col1 Col2
--- ---
Bar Val1
Bar Val2
Bar Val3
Foo Val4
Foo Val5
Foo Val6
我需要编写一个输出
的查询Col1 Col2
--- ----------------
Bar Val1, Val2, Val3
Foo Val4, Val5, Val6
我需要将其作为单个查询编写,因此无法使用COALESCE()
进行连接,因为它需要使用变量和循环。
我的另一个解决方案是使用递归CTE。但是,我需要连接'Bar'和'Foo'的值。我想到CROSS APPLY
但是不知道是否有可能使用CROSS APPLY
和递归CTE来实现这个结果。
有什么建议吗?
答案 0 :(得分:1)
$('#editButton').click(function(){
$('#confirmation-msg').show();
});
答案 1 :(得分:0)
试试这样:
DECLARE @tbl TABLE(Col1 VARCHAR(100),Col2 VARCHAR(100));
INSERT INTO @tbl VALUES
('Bar','Val1')
,('Bar','Val2')
,('Bar','Val3')
,('Foo','Val4')
,('Foo','Val5')
,('Foo','Val6');
SELECT DISTINCT Col1,Concatenated.Col2
FROM @tbl AS tbl
CROSS APPLY(
SELECT STUFF
(
(
SELECT ', ' + Col2
FROM @tbl AS InnerTbl
WHERE InnerTbl.Col1=tbl.Col1
FOR XML PATH('')
)
,1,2,'')
) AS Concatenated(Col2)
/* Result
Col1 Col2
Bar Val1, Val2, Val3
Foo Val4, Val5, Val6
*/