-1

可能重复:
在 MS SQL Server 2005 中模拟 group_concat MySQL 函数?

我有一个查询需要返回一组字段,以及作为单个字符分隔的字符串返回的数据列表。

假设我有 2 张桌子

tbl人

NamePK    Name
-----------------
1         Fred
2         Tom

tblNotes

NameFK    Note
------------------------
1         Likes to talk
1         Types fast
2         Joined the internet

然后我的答案看起来像这样(如果我用'+'分隔)

NamePK    Name    Notes
-------------------------------------------
1         Fred    Likes to talk+Types fast
2         Tom     Joined the internet

我相信我必须使用 COALESCE 功能。我过去曾使用它来创建逗号分隔的值,但我不确定如何在选择中执行此操作。我正在使用 MSSQL。

有什么想法或方法吗?

建议: Sql COALESCE 整行

4

1 回答 1

2

使用STUFFandFOR XML PATH进行连接。有关示例,请参见此问题。如果您搜索其他涉及STUFF.

SELECT p.NamePK, p.Name,
 STUFF((
        select '+' + n.Note
        from tblNote n
        where n.NameFK = p.NamePK
        for xml path('')
    ), 1, 1, '')
FROM tblPeople p
于 2012-06-28T16:41:17.737 回答