DB2公共表表达式的用法 |
本文标签:DB2公共表表达式 DB2公共表表达式属于临时表,下面就为您详细介绍DB2公共表表达式的使用方法,希望可以让您对DB2公共表表达式有更深的认识 。 DB2使用公共表表达式 DB2公共表表达式是一个本地临时表,可以在一条 SQL 语句中引用多次 。这个临时表只能存在于定义它的 SQL 语句的生命周期内 。每次公共表表达式被引用时,其结果都是相同的 。临时表是在 SQL 语句中用 WITH 子句定义的 。下面是具体的语法: WITH AS (
在上述例子中,prod_quantity 被定义为一个公共表表达式 。它与一个名为 totals 的公共表表达式一起使用 。最终的 SELECT 语句将从两个公共表表达式中进行选择 。 下面看另一个例子:
这个公共表表达式包含了 PAYLEVEL 。这个结果表包括员工编号、该员工被雇年份、该员工的总工资以及该员工的受教育程度 。只需要包括受教育程度大于 16 的那些员工的记录 。 该列表还包括一个名为 PAYBYED(“pay by education” 的缩写)的公共表表达式 。它通过使用 PAYLEVEL 表来确定受教育程度、被雇年份和同年被雇的具有同等受教育程度的员工的平均工资 。由这个表中得到的列的列名(例如 EDUC_LEVEL)与选择列表中使用的列名不同 。 最后,我们得到能够产生所需结果的实际查询 。该查询连接两个表(PAYLEVEL、PAYBYED),确定工资低于同年雇用的所有员工平均工资的员工 。注意,PAYBYED 是基于 PAYLEVEL 的,所以在整个语句中,PAYLEVEL 实际上被访问了两次 。在这两次中,计算查询时都用到了同一组行 。 在定义一个公共表表达式之后,就可以像使用其他表一样 SQL 语句中使用它 。可以任意次地使用公共表表达式 。甚至可以在之前创建的公共表表达式的基础上,再创建一个公共表表达式 。
|