• DB2 9 根蒂根基(730 考试)认证指南,第 7 部分: XQuery 简介(7)


    developerWorks








    条件逻辑

    可以操作几个简单的环节字将条件逻辑联合进 XQuery 中。

    假定您要联合每位客户。您最企望经由历程电子邮件与他们获得联合,但假设没有他们的电子邮件地点,那么就向他们家里打德律风。假设也没有家庭德律风号码,就经由历程邮局邮寄一封信。因此,需求盘考 DB2 clients 表,获得一个包罗每个客户的单一电子邮件地点、家庭德律风号码或邮政地点的会商列表。

    假设将条件逻辑联合进 XQuery 中,这个使命就很随意完成。获得所需信息的一种步伐如下:

    清单 33. 具有分三部分的条件表达式的 XQuery

                        
    xquery 
    for $y in db2-fn:xmlcolumn('CLIENTS.CONTACTINFO')/Client 
    return ( 
      if ($y/email) then $y/email[1] 
      else if ($y/phone/home) then <homePhone>{$y/phone/home/text()}</homePhone>
      else $y/Address)
    


    我们来看看这个盘考的第四行到第六行。可以看到,它们是 return 子句的组成部分,因此决意盘考的输入是什么。

    第四行搜检文档中能否至多有一个 email 元素;假设有,那么它指定应该前去第一个 email 元素。假设没有 email 元素,那么执行第五行。它指示 DB2 在 phone 元素下寻觅 home 元素。假设文档中包罗家庭德律风号码,那么提取它的文本节点并作为新的 “homePhone” 元素的一部分前去。最后,假设客户的会商文件(XML 文档)中没有电子邮件地点和家庭德律风号码,那么 DB2 前去完好的 Address 元素。由于 clients 表 中的一切记录都包罗邮政地点,所以这个盘考的逻辑确保 DB2 会为每个客户前去一种会商编制。

    这个盘考的输入是:

    清单 34. 盘考输入

                        
    <email>
    	love2shop@yahoo.com
    </email>
    <Address>
    	<street>
    		1204 Meridian Ave.
    	</street>
    	<apt>
    		4A
    	</apt>
    	<city>
    		San Jose
    	</city>
    	<state>
    		CA
    	</state>
    	<zip>
    		95124
    	</zip>
    </Address>
    <homePhone>
    	4083332222
    </homePhone>
    <email>
    	golfer12@yahoo.com
    </email>
    <email>
    	beatlesfan36@hotmail.com
    </email>
    <homePhone>
    	6503310091
    </homePhone>
    






    版权声明: 原创作品,答理转载,转载时请务必以超链接编制标明文章 原始出处 、作者信息和本声明。不然将追究执法责任。

  • 相关阅读:
    解决input获取焦点时底部菜单被顶上来问题
    JavaScript学习笔记
    JavaScript表单验证
    js 中{},[]中括号,大括号使用详解
    陀飞轮
    娱乐天空
    左右手
    软测 学习
    git 学习
    spring boot 学习
  • 原文地址:https://www.cnblogs.com/zgqjymx/p/1972934.html
Copyright © 2020-2023  润新知