0

アイテムテーブル

ID    item_id     item
------------------------
1     44          shoe 
2     44          boat
3     44          car
4     82          truck
5     82          shirt
6     82          tree
7     99          egg
8     99          carrot
9     99          penguin

私もです:

SELECT item 
FROM items 
WHERE item_id = 82

異なる行で次のようになります。

 truck
 shirt
 tree

おそらくいくつかの区切り文字で区切られた、すべての項目を 1 つの行に返す SELECT はありますか。

truck,shirt,tree

私はそれを長い道のりで行う方法を知っていますが、同じことを行うための簡単な選択はありますか?

ありがとう!

4

2 に答える 2

4
SELECT
     [item_id],
     STUFF(
         (SELECT ',' + [item]
          FROM TableName
          WHERE [item_id] = a.[item_id] AND item_id = 82
          FOR XML PATH (''))
          , 1, 1, '')  AS NamesList
FROM TableName AS a
WHERE item_id = 82
GROUP BY [item_id]
于 2013-02-14T16:48:04.523 に答える
0

あなたは使用することができCROSS APPLYますFOR XML PATH

SELECT distinct t1.item_id,
  LEFT(itemList , LEN(itemList)-1) itemList 
FROM items t1
CROSS APPLY
(
  SELECT t2.item + ', '
  FROM items t2
  where t1.item_id = t2.item_id
  FOR XML PATH('')
) m (itemList)
where t1.item_id = 82

デモで SQL Fiddle を参照してください

于 2013-02-14T16:48:18.923 に答える