T-SQL。如何在一个SELECT中将列表创建为以逗号分隔的字符串?

时间:2011-10-01 16:18:37

标签: string sql-server-2005 tsql

MS SQL 2005.T-SQL。

我发现很多好的解决方案如何拆分字符串。但是如何将内部SELECT的结果组合为字符串(例如,使用逗号分隔符)?代码:

SELECT b.date,
(SELECT o.number FROM order o WHERE o.number = m.number ) AS orderList

FROM bank b, movemoney m

WHERE b.code = m.code

表'movemoney'由表'order'中的零或几个订单组成。如何在一个SELECT语句中将'orderList'创建为字符串

1 个答案:

答案 0 :(得分:1)

如果需要,您还可以将XML PATH放入SELECT中的子查询中 我只是喜欢这个结构:

SELECT
    b.date,
    SUBSTRING(CAST(foo.bar AS varchar(8000)), 2, 7999) AS orderList
FROM
    bank b
    JOIN 
    movemoney m ON b.code = m.code
    OUTER APPLY
    (
    SELECT
        ',' + concatenatedid
    FROM
        order o
    WHERE
         o.number = m.number 
    FOR XML PATH ('')
    ) foo(bar)