2012-12-20 9 views
5

özniteliği VE değeri üzerinde bir SQL Server XML sütun filtreleme fıkra:nereden aşağıdaki verilere sahip tablo 'Belge' bir 'meta veri' alanı var

<properties> 
    <property name="someProp">xyz</property> 
    <property name="reportId">55</property> 
    <property name="someOtherProp">abc</property> 
</properties>' 

nasıl kayıt döndüren bir sorgu yazabilirsiniz özellik öğesi "reportId" adıyla ve "reportId" özellik öğesinin 55 değerine sahip olduğu yerde? Bazen "reportId" özellik düğümü, var olan yalnızca bir tanesidir ve bazen her zaman yukarıdaki sırada değildir, bu yüzden mutlak konumlarda sorgulayamıyorum. Herhangi bir fikir?

cevap

5

Değeri çıkarmaya gerek yoktur. Bunun yerine exist() Method (xml Data Type) kullanın.

select * 
from Document 
where Metadata.exist('/properties/property[@name="reportId" and . = 55]') = 1 
İlgili konular