我需要帮助编写查询,其中查询输出显示带有逗号分隔数据的列。
我有两张一对多的关系表。我想编写一个查询,从一个记录中输出表中的所有记录,但在具有许多记录的表中的一列中显示逗号分隔的数据。
表1
Col1 Col2 Col3
a1 1 4
a2 2 5
a3 3 6
a4 7 8
表2
Col1 Col4
a1 10
a1 11
a1 22
a2 10
a2 11
a3 19
a3 22
a3 23
a4 15
查询输出:
Col1 Col2 Col3 Col4
a1 1 4 10,11,22
a2 2 5 10,11
a3 3 6 19,22,23
a4 7 8 15
提前致谢
答案 0 :(得分:2)
您可以使用以下内容:
select t1.col1,
t1.col2,
t1.col3,
left(t2.col4, len(t2.col4)-1) col4
from table1 t1
cross apply
(
select cast(t2.Col4 as varchar(10)) + ', '
from Table2 t2
where t1.col1 = t2.col1
FOR XML PATH('')
) t2 (col4)
或者您可以使用:
select t1.col1,
t1.col2,
t1.col3,
STUFF(
(SELECT ', ' + cast(t2.Col4 as varchar(10))
FROM Table2 t2
where t1.col1 = t2.col1
FOR XML PATH (''))
, 1, 1, '') AS col4
from table1 t1
答案 1 :(得分:1)
SELECT Col1,
Col2,
Col3,
Col4 = SUBSTRING((
SELECT ',' + af.awardFocusName
FROM Table2 t2
WHERE t2.Col1 = t1.Col1
FOR XML PATH('')
), 2, 1000000)
FROM Table1 t1