2010-06-25 105 views
2

我需要得到帳戶名的值在我的表的Xquery節點值

<rows> 
    <Row xmlns="http://adcenter.microsoft.com/advertiser/reporting/v5/XMLSchema"> 
    <AccountName value="MA_Yellowpages - AdStore" /> 
    </Row> 
</rows> 

我使用下面的事情 -

;WITH XMLNAMESPACES('http://adcenter.microsoft.com/advertiser/reporting/v5/XMLSchema' AS ns) 
select 
temp.query('AccountName[1]').value('@value','varchar(1000)') AS AC 
from yp.dbo.Audit_ApiCallRawXml CROSS APPLY 
     RawXML.nodes('/rows/ns:Row') lg(temp) 
+0

如果您發佈的是代碼或XML,請**在文本編輯器中突出顯示這些行,然後單擊編輯器工具欄上的「代碼」按鈕(101 010)以更好地格式化和語法突出顯示它! – 2010-06-25 05:05:56

回答

1

你幾乎沒有 - 但你還需要確保使用<Row>節點內的AccountName元素上的XML名稱空間。此外,我會寫這樣的查詢:

;WITH XMLNAMESPACES('http://adcenter.microsoft.com/advertiser/reporting/v5/XMLSchema' AS ns) 
SELECT 
    temp.value('(ns:AccountName/@value)[1]', 'varchar(1000)') AS AC 
FROM 
    yp.dbo.Audit_ApiCallRawXml 
CROSS APPLY 
    RawXML.nodes('/rows/ns:Row') lg(temp) 

這應該有希望工作。

+0

謝謝marc_s,你搖滾!它工作正常。 – alok 2010-06-25 17:23:31