下面通过一个自动生成0至100数字序列的例子,来介绍with语句的语法
with t1(num) as
(
select 0 as num
from sysibm.sysdummy1
union all
select num+1
from t1
where t1.num < 100
)
select num
from t1
;
--t1为虚拟表
--第一个Select语句是初始化虚拟表,即把初始内容作为递归种子,它只被执行一次
--第二个Select语句被执行多次,并把每次执行的结果添加到虚拟表中,并作为下一次递归的种子,直到递归结束
--第三个Select允许我们选择递归查询所产生的所有行或是部分行