DB2 公共表表达式(WITH语句的使用)

本文介绍了DB2中的公共表表达式(WITH语句),通常用于定义临时集合,类似视图但不相同。WITH语句通过查询(而非VALUES语句的明确值)创建临时集合,可用于复杂查询。文中通过实例展示了WITH语句如何用于递归查询,如查询树状结构数据,例如论坛板块和文章评论。并讨论了WITH语句在性能和递归查询中的应用。
摘要由CSDN通过智能技术生成

----start

    说起WITH 语句,除了那些第一次听说WITH语句的人,大部分人都觉得它是用来做递归查询的。其实那只是它的一个用途而已,它的本名正如我们标题写的那样,叫做:公共表表达式(Common Table Expression),从字面理解,大家觉得它是用来干嘛的呢?其实,它是用来定义临时集合的。啊?VALUES语句不是用来定义临时集合的吗?怎么WITH语句也用来定义临时集合呢?它们有什么区别呢?

 

VALUES语句是用明确的值来定义临时集合的,如下:

 

WITH语句是用查询(也就是select语句)来定义临时集合的,从这个角度讲,有点像视图,不过不是视图,大家千万别误解。如下:

 

下面我们来解释一下,首先语句1执行,它会产生一个有两列(NAME,BIRTHDAY)的结果集;接着,我们将这个结果集命名为test,并且将列名重命名为NAME_TEST, BDAY_TEST;最后我们执行语句2,从这个临时集合中找到生日是1949-10-1,也就是共和国的同龄人。

 

怎么样?如果你感觉不好理解,请仔细的分析一下上面的语句。下面我们举个VALUES语句WITH语句结合使用的例子,如下:

从上面的介绍和WITH语句不为大多数人所熟悉可以猜测,WITH语句是为复杂的查询为设计的,的确是这样

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值