首页 > 代码库 > sql笔记

sql笔记

1. 看下面sql,重点有两个,一个是distinct  ,一个是树形结构查询

select DISTINCT t.unit_code from t_unit_relation t where t.corp_tn=jiaozhougongan start with t.unit_code=0001 connect by prior t.unit_code = t.unit_upcode

分析:

① distinct:去重复值

② 树形结构查询,这个博客:http://www.cnblogs.com/benbenduo/p/4588612.html,讲的很好

提出几句以作概括

start with 子句:遍历起始条件

connect by 子句:连接条件

prior: prior跟父节点列parentid放在一起,就是往父结点方向遍历prior跟子结点列subid放在一起,则往叶子结点方向遍历

parentid、subid两列谁放在“=”前都无所谓,关键是prior跟谁在一起。

  

select t.parentid, t.subid, level from  table t  start with t.parentid=7 connect by prior subid = parentid order by level desc
--prior跟着subid 说明往叶子结点遍历,以7为父结点的子结点

select t.parentid, t.subid, level from table t start with t.subid=‘7‘ connect by prior subid = parentid order by level desc
--prior跟着subid 说明往叶子结点遍历,以7为子节点的
父结点,往下遍历,所以图二会有 3

效果图,借用那个博客的:

技术分享

 技术分享

 

sql笔记