WEB开发网
开发学院数据库DB2 使用 XQuery 查询 DB2 XML 数据 阅读

使用 XQuery 查询 DB2 XML 数据

 2009-11-11 00:00:00 来源:WEB开发网   
核心提示: 如果您猜到返回的结果是包含 Address 元素及其所有子元素的一系列的 XML 片段,那就对了,使用 XQuery 查询 DB2 XML 数据(7),清单 9 给出了一个例子: 清单 9. 上述查询的示例输出<Address><street>5401JulioAve.&

如果您猜到返回的结果是包含 Address 元素及其所有子元素的一系列的 XML 片段,那就对了。清单 9 给出了一个例子:


清单 9. 上述查询的示例输出
<Address> 
 <street>5401 Julio Ave.</street> 
 <city>San Jose</city> 
 <state>CA</state> 
 <zip>95116</zip> 
</Address> 
. . . 
<Address> 
 <street>1204 Meridian Ave.</street> 
 <apt>4A</apt> 
 <city>San Jose</city> 
 <state>CA</state> 
 <zip>95124</zip> 
</Address>  

注意: 为了易于阅读,这里的示例输出作了格式上的调整。DB2 Command Editor 是在一行中显示每个客户地址记录的。

过滤 XML 元素值

您可以修改上述 XQuery 例子,缩小选择范围。例如,我们来看看如何返回居住在邮政编码为 95116 的地区的所有客户的邮递地址。

与您想像的一样,通过 XQuery where 子句可以根据 XML 文档中 zip 元素的值来过滤结果。清单 10 说明了如何在 清单 8 中的 FLWOR 表达式中添加一个 where 子句,以获得您感兴趣的地址信息:


清单 10. 带有 “where” 子句的 FLWOR 表达式
xquery 
for $y in db2-fn:xmlcolumn('CLIENTS.CONTACTINFO')/Client/Address 
where $y/zip="95116" 
return $y 

这里添加的 where 子句很容易理解。for 子句依次将变量 $y 绑定到每个地址。where 子句包含一个小型的路径表达式,该表达式从每个地址向下定位到其内嵌的 zip 元素。只有当这个 zip 元素等于 95116 时,where 子句才为 true(相应的地址被保留)。

上一页  2 3 4 5 6 7 8 9 10  下一页

Tags:使用 XQuery 查询

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接