String T-SQL。如何在一个SELECT中创建以逗号分隔的字符串形式的列表?
MS SQL 2005。T-SQL 我发现很多很好的解决方法如何分割字符串。但是如何从内部SELECT as字符串(例如,使用逗号分隔符)组合结果呢?代码: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
表“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)