项目表
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
是否有一个SELECT可能会返回一行中的所有项目 由一些分隔符分隔:
truck,shirt,tree
我知道如何做到这一点很长但是有一个简单的选择做同样的事情吗?
谢谢!
答案 0 :(得分: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]
答案 1 :(得分: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