T-SQL, OpenXml объединяет теги XML в одну запись - PullRequest
0 голосов
/ 23 мая 2018

У меня есть этот sql

select 
    Alias
from OpenXml(@XML, '/Entity/Aliases', 2)
with (
    Alias  varchar(255) '.'
) 

, который извлекает данные из XML-файла

xml имеет такую ​​структуру:

<Entity>
        <EntityID>123</EntityID>
        <Aliases>
            <Alias>TEST 1</Alias>
        </Aliases>
        <Aliases>
            <Alias>TEST 2</Alias>
        </Aliases>
        <Aliases>
            <Alias>TEST 3</Alias>
        </Aliases>

...

По возвращении select я получаю TEST 1TEST 2TEST 3 как я могу изменить, чтобы я получал каждый псевдоним в другой записи?

1 Ответ

0 голосов
/ 23 мая 2018

попробуйте ниже запроса

DECLARE @Tmp AS XML ='
<Entity>
        <EntityID>123</EntityID>
        <Aliases>
            <Alias>TEST 1</Alias>
        </Aliases>
        <Aliases>
            <Alias>TEST 2</Alias>
        </Aliases>
        <Aliases>
            <Alias>TEST 3</Alias>
        </Aliases>
        </Entity>'


SELECT  xmlData.A.value('.', 'VARCHAR(100)') AS alias
FROM    @Tmp.nodes('Entity/Aliases/Alias') xmlData(A)
...