DB2(WITHAS)SQL递归查询

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

DB2(WITHAS)SQL递归查询
作者博客地址更换⾄CSDN,地址:/littlebrain4solving
由于业务涉及到复杂的查询,需要多处引⽤查询过的⼀个结果集,⽽在DB2⾥⾯不⽀持使⽤变量作为中间存储(直接存储这个结果集),这个时候需要使⽤到DB2特定的⼀种⽅式(WITH AS).
(注:存储过程⾥⾯不⽀持这种⽤法,本⼈亲测.)
以下是标准的⽤法形式:
WITH [结果名](字段名...) AS (
[SELECT 字段名 FROM .....]
)SELECT * FROM [结果名]
⽰例⼀(单次递归):
WITH T1(NAME,AGE) AS(
--把年龄⼤于18的⼈全部取出.
SELECT NAME,AGE FROM PERSON WHERE AGE >18
)
SELECT*FROM T1
⽰例⼆(多次递归)
WITH T1(NAME,AGE) AS(
--把年龄⼤于18的⼈全部取出.
SELECT NAME,AGE FROM PERSON WHERE AGE >18
),T2(NAME,AGE)AS(
--由于我们知道T1只有2个字段,所以可以直接使⽤*.
SELECT*FROM T1 WHERE NAME NOT IN (SELECT NAME FROM T1 WHERE NAME ='张三')
)
SELECT*FROM T2。

相关文档
最新文档