2012-01-18 72 views
3

我怎樣才能得到下面的XML文檔T-SQL XML查詢

DECLARE @xVar XML 
SET @xVar = 
    '<reportdata genre="security" publicationdate="2002" ISBN="0-7356-1588-2"> 
    <title>Writing Secure Code</title> 
    <author> 
     <first-name>Michael</first-name> 
     <last-name>Howard</last-name> 
    </author> 
    <author> 
     <first-name>David</first-name> 
     <last-name>LeBlanc</last-name> 
    </author> 
    <price>39.99</price> 
    </reportdata>' 

SELECT [Title]= reportdata.item.value('@title', 'varchar(40)') 

FROM @xVar.nodes('/reportdata') AS reportdata(item) 

這個查詢始終返回null,任何想法的稱號?

回答

3

title是不是屬性的元素。以下作品。

SELECT [Title]= reportdata.item.value('.', 'varchar(40)') 
FROM @xVar.nodes('/reportdata/title[1]') AS reportdata(item) 
+0

非常感謝 – klashagelqvist 2012-01-18 12:05:12

2

沒有必要切碎FROM子句中的XML,如果你只想要一個值。

SELECT [Title]= @xVar.value('(/reportdata/title)[1]', 'varchar(40)')