数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

SQL Server2005的XML数据类型之基础篇[4]


发布日期:2022年08月18日
 
SQL Server2005的XML数据类型之基础篇[4]

nodes方法

nodes方法用于把一组由一个查询返回的结点转换成一个类似于结果集的表中的一组记录行该方法的语法如下

nodes (XQuery) Table(Column)

这里XQuery是选择要暴露为一个结果集的结点的表达式Table和Column用于指定结果集中的名字注意你仅可以操作一列并且它的自动类型为XML例如为了查询并得到每一个投球手的信息你可以编写如下的代码

DECLARE @doc xml

SELECT @doc =

<Team name=Braves

<Players>

<Pitcher name=John Smoltz role=Closer

With team since

</Pitcher>

</Players>

</Team>

SELECT Teamplayerquery() as Pitcher

FROM @docnodes(/Team/Players/Pitcher)

Team(player)

这些在单个结果集中的结果包含相应于每一个投球手的元素的行数据

Pitcher

<Pitcher name=John Smoltz role=Closer />

<Pitcher name=Russ Ortiz role=Starter />

( row(s) affected)

注意上面你使用了query方法把这些结点返回到结果中其原因在于一个nodes方法的结果可能仅能为XML方法(查询修改删除和更新)或IS NULL和IS NOT NULL语句所参考

一般地你可以使用nodes方法把XML分解为一组更为有用的结果例如你可以使用nodes方法得到运动员的结点然后使用value方法检索它们以便得到作为标量数据的单个值

SELECT Teamplayervalue(

/@name nvarchar()) as Name

Teamplayervalue(/@role nvarchar()) as

PlayerRole

FROM @docnodes(/Team/Players/Pitcher)

Team(player)

这会产生如下的结果

Name PlayerRole

John Smoltz Closer

Russ Ortiz Starter

( row(s) affected)

[] [] [] []

               

上一篇:SQL Server2005的XML数据类型之基础篇[2]

下一篇:SQL Server讲堂:加密与SQL注入