博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL 递归查询
阅读量:6159 次
发布时间:2019-06-21

本文共 1010 字,大约阅读时间需要 3 分钟。

CREATE 
TABLE 
[
ptable
](
 
[
id
] 
[
int
] 
NULL,
 
[
pid
] 
[
int
] 
NULL,
 
[
name
] 
[
nchar
](
10)
)
GO
INSERT 
INTO ptable 
VALUES(
1,
0,
'
a
')
INSERT 
INTO ptable 
VALUES(
2,
0,
'
b
')
INSERT 
INTO ptable 
VALUES(
3,
1,
'
c
')
INSERT 
INTO ptable 
VALUES(
4,
1,
'
d
')
INSERT 
INTO ptable 
VALUES(
5,
2,
'
e
')
INSERT 
INTO ptable 
VALUES(
6,
3,
'
f
')
INSERT 
INTO ptable 
VALUES(
7,
3,
'
g
')
INSERT 
INTO ptable 
VALUES(
8,
4,
'
h
')
GO
--
查询出1结点的所有子结点
with tmp 
as(
select 
* 
from ptable 
where id 
= 
1
 
union 
all 
select ptable.
* 
from tmp, ptable 
where tmp.id 
= ptable.pid
)
select 
* 
from tmp 
--
查询出8结点的所有父结点
with tmp 
as(
select 
* 
from ptable 
where id 
= 
8
 
union 
all 
select ptable.
* 
from tmp, ptable 
where tmp.pid 
= ptable.id
)
select 
* 
from tmp;
--
递归删除1结点和所有子结点的语句:
with tmp 
as(
select 
* 
from ptable 
where id 
= 
1
   
union 
all 
select ptable.
* 
from tmp, ptable 
where tmp.id 
= ptable.pid
)
delete 
from ptable 
where 
exists (
select id 
from tmp 
where tmp.id 
= ptable.id) 

转载于:https://www.cnblogs.com/pato/archive/2012/03/31/2427210.html

你可能感兴趣的文章
iOS 加载动态库报错问题
查看>>
今日工作情况5
查看>>
记录git的初始设置,添加文件,提交文件
查看>>
18 行为型模式-----模板方法模式
查看>>
基于PHP的微信支付教程
查看>>
《Linux内核设计与实现》学习总结 Chap18
查看>>
const与define的对比
查看>>
sql中binary_checksum(*)的用法
查看>>
pta l2-13(红色警报)
查看>>
网页编排规则
查看>>
有图形界面的聊天程序
查看>>
ACM题解系列之一:刘汝佳:《算法竞赛入门经典》(第2版)
查看>>
codeforces 698B fix a tree 时间戳
查看>>
从新浪的分享文本字符串中,分离出@到的好友的方法
查看>>
11-02笔记图
查看>>
visual c++ 2010安装失败导致CRM2015安装失败
查看>>
web项目直接在浏览器上访问不需要带.jsp,直接ip地址加项目名 在web.xml里配置...
查看>>
一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之用户管理(3)...
查看>>
1+2+34-5+67-8+9=100?
查看>>
ELK系列~Fluentd对大日志的处理过程~16K
查看>>