1

重複の可能性:
多くの行を1つのテキスト文字列に連結しますか?

フィールドとフィールドで呼び出さSkillSetsれるテーブルがあります。このテーブルに次のようなレコードがあるとしましょう。SkillIDSkillSetID

SkillID  SkillSetID
-------  ----------
750      2
750      4
750      5
751      3
751      4
751      6

次を生成するクエリが必要です。

SkillID  SkillSetIDs
-------  ----------
750      2,4,5
751      3,4,6

ある種のxml句を使用してこれを見たのを覚えているようですが、それについて何も見つけることができず、カーソルまたはwhileループを使用せずにそれを実行する方法がわかりません。手伝ってくれますか?

4

3 に答える 3

0

MySQLでは、これは機能します。

SELECT SkillID, GROUP_CONCAT(SkillSetID) As SkillSetIDs
FROM skills
GROUP BY SkillID

ただしGROUP_CONCAT、MySQLに固有であるため、別のデータベースを使用している場合、それはうまくいきません。

于 2012-12-17T21:39:49.733 に答える
0

これはあなたを助けますか?

select 'test' as Test, 1 as Item 
into #test 
union select 'test2', 2 
union select 'test', 3 
union select NUll, 4 
union select 'test', 5 

select t2.test, STUFF((SELECT  ', ' + cast(t1.Item as varchar (10) )
        FROM #test t1 where t2.test = t1.test 
        FOR XML PATH('')), 1, 1, '') 
     from #test t2
     group by t2.test  
于 2012-12-17T21:47:33.873 に答える
0

クエリ:

SQLFIDDLE例

SELECT
s.SkillID,
STUFF((
        SELECT ',' + SkillSetID
        FROM SkillSets s2
        WHERE s2.SkillID = s.SkillID
        FOR XML PATH('')
      ), 1, 1, '')  AS SkillSetIDs
FROM SkillSets s
GROUP BY s.SkillID

結果:

| SKILLID | SKILLSETIDS |
-------------------------
|     750 |       2,4,5 |
|     751 |       3,4,6 |
于 2012-12-17T22:00:24.293 に答える