SQL-запрос, чтобы сделать столбец чисел строкой - PullRequest
2 голосов
/ 16 июня 2011

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

Что-то вроде:

att1
----------
123.2
3.6
6.77
23.43
4.78
7.6
123.2
9.6
1.77
3.43
24.78
76.6
411.5
346.5
975.75
162.788
4.5
16.2
324.5
746.5
975.75
12.788
24.5
6.2


to

string = "
123.2,
3.6,
6.77,
23.43,
4.78,
7.6,
123.2,
9.6,
1.77,
3.43,
24.78,
76.6,
411.5,
346.5,
975.75,
162.788,
4.5,
16.2,
324.5,
746.5,
975.75,
12.788,
24.5,
6.2
";

Ответы [ 2 ]

2 голосов
/ 16 июня 2011
declare @List varchar(max)

select @List = isnull(@List + ',', '') + cast(ColumnName as varchar)
from MyTable

print @List

Например:

declare @List varchar(max)

select @List = isnull(@List + ',', '') + cast(object_id as varchar)
from sys.objects

print @List

или

select stuff(
    (select ',' + cast(object_id as varchar)
    from sys.objects
    for xml path('')),
    1, 1, '')
1 голос
/ 16 июня 2011

Не думаю, что это лучшее решение, но я сталкивался с подобной проблемой раньше.Используя SQL Server, я просто проанализировал данные в строку XML, а затем заменил фактический XML.Это превратило его в список значений через запятую.

REPLACE(
    REPLACE(
        REPLACE(
            (SELECT
                some_field AS [data()]
            FROM
                some_table
            FOR
                XML PATH ('label'))
        ,'</label><label>',',')
    ,'</label>','')
,'<label>','')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...