我想显示以下数据:
PID SQ SQ1 DS
123 12 1 ABC
321 13 1 BBC
321 13 2 CNN
322 15 1 DFG
321 13 3 AMG
像这样:
PID DS_output
123 ABC
321 BBC|CNN|AMG
322 DFG
有人可以建议或发布我可以用来检索此查询的查询示例吗?
答案 0 :(得分:0)
您可以使用FOR XML PATH的STUFF功能组合
CREATE TABLE #t (PID INT, SQ INT, SQ1 INT, DS VARCHAR(10))
INSERT INTO #t
VALUES (123, 12, 1, 'ABC')
, (321, 13, 1, 'BBC')
, (321, 13, 2, 'CNN')
, (322, 15, 1, 'DFG')
, (321, 13, 3, 'AMG')
SELECT DISTINCT PID, stuff((
SELECT '|' + it.DS
FROM #t it
WHERE PID = ot.PID
ORDER BY it.PID
FOR XML PATH('')
), 1, 1, '')
FROM #t ot