2013-09-11 4 views
0

Здравствуйте дамы и господа,T-SQL: импорт XML с переменными элементами

У меня есть XML-файл, который имеет strucure так:

<Material> 
    <MaterialNumber>7654321</MaterialNumber> 
    <Carton> 
     <IDType>qwer</IDType> 
     <EncodingType>asdf</EncodingType 
    </Carton> 
</Material> 

Я хочу импортировать materialnumber, а также idtype ... Как я могу импортировать, когда есть два разных слоя? Я только хочу переключить @Attribute. Большое спасибо!

SET @Attribute = 'Carton/IDType' 
SELECT 
a.b.value('*[local-name() = sql:variable("@Attribute")][1]','varchar(1000)') AS blub 
FROM @myxml.nodes('//Material') a(b) 

ответ

1
select 
    @myxml.value('(Material/MaterialNumber/text())[1]', 'varchar(max)') as MaterialNumber, 
    @myxml.value('(Material/Carton/IDType/text())[1]', 'varchar(max)') as IDType 

sql fiddle demo