2012-08-09 9 views
5

可能な重複すべての値を組み合わせる:私はシングルに特定のフィールド内のすべてのレコードを結合したいと思います
SQL Server: Can I Comma Delimit Multiple Rows Into One Column?1>数(値)の場合、1つのセルに

をレコード数が1より大きい場合は、セル(別の列の値ごと)。たとえば、次のコードがある場合。

SELECT city, count(zoo name) AS 'count of zoo name' FROM mytable 
それは下記、アトランタとニューヨークの両方に複数の動物園があり、東京が一つだけの動物園を持っているので、元の表は、この

enter image description here

のように見えます

enter image description here

結果を生成する

最終結果は次のようになります

enter image description here

これをどうやってやりますか?私はPIVOTコンストラクトを使用することを考えましたが、それは可能な値ごとに新しい列を作成します。私はまた、すべての可能な動物園の名前の名前をPIVOTに書く必要があります。実際のデータには、上記よりも「動物園の名前」の値がはるかに多いので、これは悪いフォームです。

答えて

1

あなたは、私がコンマのを終了削除するには、この結果をトリミングしますSQL Fiddle

+0

で結果を確認した列の値

;With Cte(city,concat) as ( select city, (select a.Zoo+',' from Sample a where a.city=b.city for XML PATH ('')) concat from Sample b group by city ) Select city,left(concat, len(concat) -1) from cte 

をCONCATするXMLパスを使用することができます。 'LEFT(concat、LEN(concat)-1)' – Kermit

+0

これは最後に余分な '、'を付け加えるので、これを別のselectにラップして 'left(concat、len(concat)-1) 'をconcatフィールドに追加 – Taryn

+0

私の答えを更新しました。指摘して嬉しいです! – praveen

関連する問題