Обработка XML в SQL / Преобразование XML в VARCHAR - PullRequest
0 голосов
/ 26 апреля 2011
--------+-------------------------------------------------------
int     |xml
--------+-------------------------------------------------------
2       |<items>
        |    <item>
        |         <description>item 21 </description>
        |    </item>
        |    <item>
        |      <description>item 22</description>
        |    </item>
        |</items>
--------+-------------------------------------------------------
3       |<items>
        |    <item>
        |         <description>item 31 </description>
        |    </item>
        |</items>
--------+-------------------------------------------------------
4       |<items>
        |    <item>
        |         <description>item 31 </description>
        |    </item>
        |    <item>
        |      <description>item 32</description>
        |    </item>
        |    <item>
        |      <description>item 33</description>
        |    </item>
        |</items>
--------+-------------------------------------------------------

У меня есть таблица, как в приведенной выше структуре и типе, я должен преобразовать ее в структуру и тип, как показано ниже

--------+-------------------------------------------------------
int     |varhcar
--------+-------------------------------------------------------
2       |     item 21 
--------+-------------------------------------------------------  
2       |     item 22  
--------+-------------------------------------------------------
3       |     item 31   
--------+-------------------------------------------------------
4       |     item 41  
--------+-------------------------------------------------------
4       |     item 42   
--------+-------------------------------------------------------
4       |     item 43
--------+-------------------------------------------------------

Любая помощь приветствуется plz

1 Ответ

1 голос
/ 26 апреля 2011

Попробуйте:

SELECT
    ID, 
    Item.value('(description)[1]', 'varchar(50)') AS 'DescText'
FROM 
    dbo.YourTable
CROSS APPLY 
    xml.nodes('/items/item') AS Node(Item)

Это должно выбрать идентификаторы (или int) из вашей таблицы и извлечь все содержимое узлов <description> из XML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...