Получить узлы XML из столбца SQL Server в виде списка через запятую - PullRequest
5 голосов
/ 07 декабря 2010

У меня есть данные, хранящиеся в столбце xml, и мне нужен список дочерних узлов через запятую.Используя скрипт ниже, я могу получить только «ABC».Пожалуйста, помогите мне получить «A, B, C» с помощью xquery (Простая замена пробела на запятую не помогает, потому что у нас есть данные с пробелами внутри).

Ответы [ 2 ]

8 голосов
/ 07 декабря 2010

Попробуйте:

SELECT
    STUFF((SELECT 
              ',' + fd.v.value('(.)[1]', 'varchar(10)')
           FROM 
              Temp12345
           CROSS APPLY
              col1.nodes('/fd/field/v') AS fd(v)
           FOR XML PATH('')
          ), 1, 1, '')

Это дает мне A,B,C - это тоже работает для вас?

0 голосов
/ 07 декабря 2010

В полноценном XQuery-процессоре вы можете использовать только:

(/fd/field[@i=22])[1]/string-join(*,',')
...