2013-06-20 2 views
1

Как написать запрос SQL Server, который выбирает из типа данных xml и выбирает атрибут в элементе, который сопоставляется на основе другого атрибута.Выбор значения из типа данных XML

Представьте себе следующий пример:

create table dbo.Configuration(Configuration xml not null); 

insert into dbo.Configuration(Configuration) values(convert(xml, '<?xml version="1.0" standalone="yes"?> 
<Configuration> 
    <DoSRequestAnalysis> 
     <Windows> 
      <Window Name="Smallest" Duration="15"> 
       <ThresholdsToRemoveRequests NoofRequests="25" /> 
      </Window> 
     </Windows> 
    </DoSRequestAnalysis> 
</Configuration> 
')); 

select Configuration.value('(/Configuration/DoSRequestAnalysis/Windows/Window[@Name="Smallest"]/@Duration)[0]', 'smallint') from dbo.Configuration; -- I want to select the value of the attribute Duration i.e. 15 but this select returns null 

Как написать запрос так, он выбирает атрибут Duration?

Большое спасибо

ответ

1

Вы близки, просто измените [0] на [1]

select Configuration.value('(/Configuration/DoSRequestAnalysis/Windows/Window[@Name="Smallest"]/@Duration)[1]', 'smallint') 
Смежные вопросы