Как я могу потянуть список ID от стола SQL как отделенная от запятой последовательность ценностей?

Я должен потянуть список целочисленных ID от стола, используя, только делает запись того матча некоторые критерии. Например:

Select ProdID From Products Where (ProdType='XYZ');

Выгода - то, что я должен возвратить его, поскольку ряд запятой отделил ценности, таким образом, я могу использовать его, чтобы выбрать пункты в мультиизбранном списке:

111,231,554,112

вместо как отчеты. Я не хочу делать это в своем кодексе C# - я хотел бы, чтобы он прибыл прямо из базы данных через вопрос этот путь. Какие-либо идеи?

19
задан OMG Ponies 21 January 2010 в 00:14
поделиться

3 ответа

В дополнение к методу @OMG POни, вы также можете попробовать это увлечение соалюсезом от:

с использованием COMESCE для создания строк с разделителями запятую

declare @string nvarchar(255)

select @string = coalesce(@string + ', ', '') + cast(prodid as nvarchar(5))
from products
18
ответ дан 30 November 2019 в 03:25
поделиться
1
ответ дан 30 November 2019 в 03:25
поделиться

MySQL


SELECT GROUP_CONCAT(t.prodid SEPARATOR ',')
  FROM PRODUCTS t
 WHERE t.prodtype = 'XYZ'

Oracle:


Существует отличное резюме техники доступных методов агрегации строк на сайте Тим Холла.

SQL Server 2005+


SELECT STUFF((SELECT ','+ t.prodid
                FROM PRODUCTS t
               WHERE t.prodtype = 'XYZ'
             FOR XML PATH('')), 1, 1, '')
18
ответ дан 30 November 2019 в 03:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: