2013-11-13 3 views
0

я использую XML PATH, чтобы связать многозначный столбец с, запрос работает нормально, но результат в виде XML и я хочу, чтобы преобразовать его в обычный текст Вот запросXML в SQL SERVER

SELECT soo.order_id, 
sum(oo.total)AS total, 
items=(SELECT si.item_name FROM sub_order i,Items si 
WHERE i.order_id=soo.order_id and si.item_id=i.item_id FOR XML PATH('')) 
FROM Orders oo 
INNER JOIN Sub_Order soo ON oo.order_id = soo.order_id 
INNER JOIN Items 
ON soo.item_id = Items.item_id 
group by soo.order_id 

и результат поля "пунктов", как

<item_name>cake</item_name><item_name>soap</item_name> 

, но я хочу, чтобы это было как cake,soap

ответ

2

Заменить

items=(SELECT si.item_name FROM sub_order i,Items si 
WHERE i.order_id=soo.order_id and si.item_id=i.item_id FOR XML PATH('')) 

с

items=STUFF((SELECT ',' + si.item_name FROM sub_order i,Items si 
WHERE i.order_id=soo.order_id and si.item_id=i.item_id FOR XML PATH('')),1,1,'') 
+0

спасибо, он работал :-) –