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

String T-SQL。如何在一个SELECT中创建以逗号分隔的字符串形式的列表?,string,sql-server-2005,tsql,String,Sql Server 2005,Tsql,MS SQL 2005。T-SQL 我发现很多很好的解决方法如何分割字符串。但是如何从内部SELECT as字符串(例如,使用逗号分隔符)组合结果呢?代码: 表“movemoney”由表“order”中的零个或几个订单组成。如何在一个SELECT语句中将“orderList”创建为字符串?如果需要,还可以将XML路径放入SELECT语句中的子查询中。 我只是喜欢这个结构: SELECT b.date, SUBSTRING(CAST(foo.bar AS varchar(8000

MS SQL 2005。T-SQL

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



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

如果需要,还可以将XML路径放入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)

谢谢有没有可能在没有连接的情况下创建csv字符串?连接是近20年来的SQL标准。为什么不想使用ANSI SQL 92连接语法?我的SQL查询很长,但很单调。我不想把事情复杂化。
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)