4

2 つの値を持つテーブルの 1 つの SQL クエリからデータを取得したい

 select c from tmp;

    c 
   foo  
   bar 

2 rows in set (0.00 sec)

必要な返されたデータは <foo,bar> です

Concat はこれを行わず、私が見つけた文字列関数も行いません。2行の整数を合計できます。同様に文字列値を取得できないのはなぜですか?

4

2 に答える 2

2

関数を使用GROUP_CONCAT()して値をまとめることができます。

これにより、コンマで区切られたすべての文字列値が結合されます

于 2012-12-19T07:10:43.397 に答える
1

group_concat()おそらく、MYSQL にが必要です。

ここで MYSQL にサンプルが必要であることに注意してください。

* SQLFIDDLE のデモンストレーション

Select department, group_concat(name,',') as nameList
from foo
group by department
;

結果:

Department NameList
D1         John, Mary
D2         Tim, Dan, Jack
D3         Kate, Felix

以下は、TSQL で使用するメソッドです。

次のサンプル コードを試して、テーブル/列に合わせて調整できます。

SELECT department, namelist = STUFF(
 (SELECT ','+ Name FROM foo B 
 WHERE b.department = a.department FOR XML PATH('')) , 1 , 1 , '' )
FROM foo A

または、 を実行することもできますCTE

于 2012-12-19T07:13:03.743 に答える