1
<Term xmlns:xxxlocal="xx.xx.xx.xx" href="abcde?terms=1" policyTerm="1">
   <EffectiveDate>2012-05-22T00:00:00-04:00</EffectiveDate>
   <ExpirationDate>2013-05-22T00:00:00-04:00</ExpirationDate>
   <LocationCode>XXXXXX</LocationCode>
   <ProductRef href="products/XXXXXXXXXXXXXXXXXXXXX" idref="XXXXXXXXXXXXXXXXXXXXX" version="ZZZZZZZZZZZZZZZZZZZZZZZ">
       <CachedItem name="Label" value="I NEED TO EXTRACT THIS VALUE" />
    </ProductRef>
...

我正在尝试为Label1under提取 VALUE <ProductRef>

我正在尝试这个,但它不起作用:

SELECT XmlDoc.value('(/Term/ProductRef[1]/CachedItem[@name=sql:variable("@Label")]/@value)[1]','varchar(100)')

我不断收到错误:

消息 9501,级别 16,状态 2,第 1 行
XQuery:无法解析 sql:variable('@Label')。该变量必须声明为标量 TSQL 变量。

我究竟做错了什么?

4

1 回答 1

1

试试这个

SELECT @xml.value('(/Term/ProductRef[1]/CachedItem/@value)[1]','varchar(100)')

SQLFiddle上的演示

于 2013-02-08T16:44:16.863 回答