我有以下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')
答案 0 :(得分:2)
它对我有用,
select xD.value('AllergenID[1]', 'VARCHAR(10)') Productid
from @Request.nodes('/ProductAllergen/Allergen') AS xm(xD)