Cam*_*mus 1 sql t-sql sql-server string-aggregation
我正在尝试将“测试”列放在同一行中。Stuff()但是,我正在使用,似乎“测试”列正在遍历所有 qID 我缺少什么?
SELECT DISTINCT qID,
STUFF((
select ',' + B.text
from tbl B
where B.qID=qID
order by B.text
for xml path('')
),1,1,'') as test
FROM tbl
WHERE qID in (2258060,2296222)
GROUP BY qID
Run Code Online (Sandbox Code Playgroud)
你在表上缺少别名
通过使用别名:
SELECT DISTINCT qID,
STUFF((
select ',' + B.text
from tbl B
where B.qID=A.qID
order by B.text
for xml path('')
),1,1,'') as test
FROM tbl A
WHERE qID in (2258060,2296222)
GROUP BY qID
Run Code Online (Sandbox Code Playgroud)
通过使用表名本身,也可以在外部查询中不使用别名。
SELECT DISTINCT qID,
STUFF((
select ',' + B.text
from tbl B
where B.qID=tbl.qID --Table name before qid here
order by B.text
for xml path('')
),1,1,'') as test
FROM tbl
WHERE qID in (2258060,2296222)
GROUP BY qID
Run Code Online (Sandbox Code Playgroud)