0

2 つのテーブルがあるとします。

Blog      BlogPosts
BlogId    BlogPostId
Name      BlogId
          Title

レコードを取得するときは、CSV 形式の BlogPost が必要です。このためのユーザー定義関数を作成し、BlogId をパラメーターとして渡します。これより良い方法はありますか?ユーザー定義関数で DB 要求を行うと、多くの場合、パフォーマンスが低下する可能性があります。他の方法を提案しますか?

4

1 に答える 1

3

これを試して:

select B.Name,
       (
         select ', '+BP.Title
         from BlogPosts as BP
         where B.BlogId = BP.BlogId
         for xml path(''), type
       ).value('substring((./text())[1], 3)', 'varchar(max)') as BlogPosts
from Blog as B

SQL フィドル

于 2012-10-18T08:29:41.270 に答える