扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
xquery for $y in db2-fn:sqlquery('select comments from items where srp > 100')/Comments/Comment where $y/ResponseRequested="Yes" return ( <action> {$y/ProductID, $y/CustomerID, $y/Message} </action> ) |
xquery for $y in db2-fn:sqlquery('select contactinfo from clients where status=''Gold'' ')/Client where $y/Address/city="San Jose" return ( if ($y/email) then <emailList>{$y/email}</emailList> else $y/Address ) |
这个查询有两个方面要解释一下。首先,嵌入在第二行的 SELECT 语句包含一个基于 “status” 列的查询谓词,它将这个 VARCHAR 列与字符串 "Gold" 相比较。在 SQL 中,这样的字符串放在单引号里面。注意,虽然这个例子看上去使用了双引号,但实际上它是在比较值("Gold")前后使用了两个单引号。“额外” 的那个单引号是换码符。如果在基于字符串的查询谓词周围使用双引号,而不是单引号,就会收到语法错误。
此外,这个查询中的 return 子句包含一个条件逻辑,用于判断给定客户的记录中是否存在 e-mail 元素。如果存在,那么该查询将返回一个新的 “emailList” 元素,其中包含客户的所有 e-mail 地址(也就是那个客户的所有 e-mail 元素)。如果不存在,那么该查询将返回客户的邮递地址(也就是那个客户的 Address 元素)。
索引
最后,值得注意的是,您可以专门创建 XML 索引来加快对存储在 XML 列中的数据的访问速度。由于本文只是一篇介绍性的文章,而且样本数据偏小,因此这里不打算就此话题展开讨论。但是在生产环境中,定义适当的索引对于取得最佳性能是非常关键的。请参阅 参考资料 了解关于 DB2 新的索引技术的更多信息。
结束语
XQuery 与 SQL 之间有一些很大的不同点,本文谈到了其中的一些不同点。了解更多关于该语言的知识将有助于判断该语言在什么情况下对您的工作最有好处,并且有助于理解在什么情况下将 XQuery 与 SQL 相结合会比较有用。在将来的文章中,我们将深入研究另一个有趣的话题:如何开发利用 DB2 XML 功能的 Java 应用程序。本文提供了一个 简单的 Java 例子,其中描述了如何在 Java 应用程序中嵌入 XQuery。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者