T-SQL.Как создать список в виде строки через запятую в одном SELECT? - PullRequest
0 голосов
/ 01 октября 2011

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» состоит из нуля или нескольких ордеров из таблицы «ордер».Как создать 'orderList' как строку в одном операторе SELECT ?

1 Ответ

1 голос
/ 01 октября 2011

Вы также можете поместить 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...