1

テーブル X に 3 つの列があります。

ID 状態タイプ
1 NJ Form1
1 NY フォーム 2
1 送信フォーム 3

テーブル Y の 1 つの列に統合したい:

Id FormTypes
1 NJ:Form1
     ニューヨーク:Form2
     TX: Form3

これを達成することは可能ですか?

現在、私は多くのことを行ってきました:

DECLARE @NewLine as char(2) = char(13) + char (10)

UPDATE tableY

SET FormTypes =
(
      select substring(
         (select ':'+ [State] + ':'+ Type+ @NewLine AS 'data()' 
            from tableX  
            for xml path(''))
      ,3, 255)
as "MyList"  )

これは私にこのようなゴミを与えています:

NJ:Form1'&#x0D'; NY:Form2'&#x0D'; TX:Form3'&#x0D';

この形式で取得する理由は、複数のファイルで読み取られる方法によるものです。

4

1 に答える 1

1
SELECT 
     x2.id, 
     STUFF((SELECT char(10)+x1.State+':'+x1.Type FROM tableX x1 WHERE x1.id=x2.id GROUP BY x1.id for xml path(''),TYPE),1,1,'') as stype 
FROM tableX x2
GROUP BY x2.id

これにより、tableYフォームが得られます

于 2012-05-17T16:29:19.490 に答える