从SQL Server中的XML字符串中选择记录

时间:2016-04-28 12:07:40

标签: sql-server xml

我有以下XML并想要选择所有allergenID条记录

 DECLARE @Request XML

 SET @Request = '
<ProductAllergen>
<!---Gluten (Barley)-->
<Allergen>
  <AllergenID>1</AllergenID>
  <AllergenStatusID>1</AllergenStatusID>
</Allergen>
<!---Gluten (Wheat)-->
<Allergen>
  <AllergenID>2</AllergenID>
  <AllergenStatusID>1</AllergenStatusID>
</Allergen>
<!---Gluten (Rye)-->
<Allergen>
  <AllergenID>3</AllergenID>
  <AllergenStatusID>1</AllergenStatusID>
</Allergen>
<!---Eggs-->
<Allergen>
  <AllergenID>4</AllergenID>
  <AllergenStatusID>1</AllergenStatusID>
</Allergen>
 </ProductAllergen>

目前这段代码给了我第一个过敏原记录。 (取出[1]不起作用)

SELECT  @Request.value('(//AllergenStatusID)[1]','int')

1 个答案:

答案 0 :(得分:2)

它对我有用,

select xD.value('AllergenID[1]', 'VARCHAR(10)') Productid 
from @Request.nodes('/ProductAllergen/Allergen') AS xm(xD)