2

SQL データベース (アクセス フロント エンド) に複数の行があり、1 つのフィールドとは別にほぼ正確なデータがある場合 (正規化については知っていますが、これは私の仕事ではないと言ってよかったです!)、1 つの行を選択する簡単な方法はありますか?共通データを使用して、他のフィールドのすべての値を一緒に表示しますか? プログラムで関数を作成することはできますが、もっと簡単な方法があると思いますか?

例えば

animal   brown   dog

animal   brown   cat

animal   brown   horse

なので

animal   brown   dog, cat, horse
4

2 に答える 2

3

これを取得するために使用できますSTUFF()

select distinct col1, col2,
  Stuff((SELECT N', ' + col3 
         FROM yourtable t2
         where t1.col1 = t2.col1
         FOR XML PATH(''),TYPE)
        .value('text()[1]','nvarchar(max)'),1,2,N'')
from yourtable t1

SQL Fiddle with Demoを参照してください

于 2012-09-12T15:48:36.863 に答える
1

使用する必要のあるテクニックの例を次に示します。

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-09-12T15:47:30.210 に答える