-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

Use STUFF and FOR XML PATH to do the concatenation. See this question for an example. There are improvements that can be made, such as eliminating extra delimiters, if you search around for other questions involving 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 に答える