在MS SQL Server 2008上,如何创建一个连接两个表的select语句,并将表2的内容作为逗号分隔列表返回?
实施例: 表1包含我的所有订单,表2包含我的订单行。 我想从订单中选择所有字段,以及相应订单行中所有字段的逗号分隔列表,每个订单行用分号(或其他)分隔。
这样的事情:
| Orders.custno | Orders.name | Orders.email | Orders.phone | Order lines |
|---------------|-------------|------------------|--------------|---------------------------------------------------------------------|
| 123456 | Dave | dave@example.com | 1234567890 | “112233”,”Running shoes”,”495.00”;”223344”,”Roller blades”,”699.00” |
希望这是有道理的。
感谢。
答案 0 :(得分:1)
如果我理解你的问题,那么下面是解决方案 SQLFiddler
SELECT p.productId,p.ProductName,tmp.List_output
FROM product p
LEFT OUTER JOIN
(
SELECT ProductId
,STUFF((SELECT ', ' + CAST(ProductLine AS VARCHAR(10)) [text()]
FROM ProductLine
WHERE ProductId = t.ProductId
FOR XML PATH(''), TYPE)
.value('.','NVARCHAR(MAX)'),1,2,' ') List_Output
FROM ProductLine t
GROUP BY ProductId) tmp ON tmp.ProductId = p.ProductId