‘壹’ 【紧急】求sql语句:已知parentID层级关系,求生成层级编码的语句
你是想根据父级ParenID 查询它的下级吗? 是只是它的第一层下级还是还包括下级的下级呢?
如果只要第一层的下级的话 where code like '01010[1-9]' or code like '0101[1-9]%' 0101是你知道的父级ParenIDID 这样写是因为如果你的下级个数大于100个的情况 如何你下级在 100个以内 则只需要这样写 where code like '0101[0-9][0-9]' 如果你要所以下级则更简单了 直接就是 where code like '0101[0-9]%' 这里之所以不写成 '0101%'这样 是因为如过写成这样 父级本身这条数据也会被查询出来。这应该就是你的想要的吧。
‘贰’ SQL,查询层级
1 select 员工,部门 from tablename where 员工='P3';
2 select 部门,员工 from tablename where 部门='D'
‘叁’ SQL树形层级查询
你好的!
oracle 的start with connect by
别的数据库用cte 递归都能达到你要的效果!
望采纳~
‘肆’ sql如何根据数据库做层次图
方法/步骤
打开SQL Server 2005数据库,进行登录操作。
‘伍’ SQL 多级查询(级数不定)
select * from item where itemID=3 union all
select * from item where FDetail=0 and parentID <(select parentID from item where itemID=3)
and substring(Number,1,2) =(select substring(Number,1,2) from item where itemID=3)
and substring(Number,4,2) =(select substring(Number,4,2) from item where itemID=3);
说下思路,先把自己本身一条找出来,然后找他的上级,看你的数据知道parentID 一定小于本身的parentID ,并且是目录的话FDetail=0,如果是其上级目录,他们前边的01.01什么的都是一样的,但是现在有个弊端,就是查询前,要确定这个itemID=3的是属于第几级实体,然后才能采用后边用多少个substring,另一个表itemID=3的条件没用,其实就是一个嵌套,你自己写里边吧
‘陆’ sql语句显示层级
declare @t TABLE(ID char(3),PID char(3),Name nvarchar(10))
INSERT @t SELECT '001',NULL ,'山东省'
UNION ALL SELECT '002','001','烟台市'
UNION ALL SELECT '004','002','招远市'
UNION ALL SELECT '003','001','青岛市'
UNION ALL SELECT '005',NULL ,'四会市'
UNION ALL SELECT '006','005','清远市'
UNION ALL SELECT '007','006','小分市'
;with cte as
(
select ID,name,level=0 from @t where PID is null
union all
select p.id,p.name ,level=level+1 from @t p join cte c on p.PID = c.ID
)
SELECT SPACE(Level*2)+''+Name
FROM cte
ORDER BY id
/*
山东省
烟台市
青岛市
招远市
四会市
清远市
小分市
(7 行受影响)*/
‘柒’ SQL要怎么写才能把 按员工查出他所在部门所有层级关系 。
WITHB1AS(
SELECT部门名称,部门名称一级部门,''二级部门,''三级部门,''四级部门,''五级部门FROM部门表WHERE层级=0),
B2AS(
SELECTB.部门名称,B1.一级部门,B.部门名称二级部门,''三级部门,''四级部门,''五级部门FROMB1JOIN部门表BONB.上级部门ID=B1.部门名称WHEREB.层级=1),
B3AS(
SELECTB.部门名称,B2.一级部门,B2.二级部门,B.部门名称三级部门,''四级部门,''五级部门FROMB2JOIN部门表BONB.上级部门ID=B2.部门名称WHEREB.层级=2),
B4AS(
SELECTB.部门名称,B3.一级部门,B3.二级部门,B3.三级部门,B.部门名称四级部门,''五级部门FROMB3JOIN部门表BONB.上级部门ID=B3.部门名称WHEREB.层级=3),
B5AS(
SELECTB.部门名称,B4.一级部门,B4.二级部门,B4.三级部门,B4.四级部门,B.部门名称五级部门FROMB4JOIN部门表BONB.上级部门ID=B4.部门名称WHEREB.层级=4),
BAS(
SELECT*FROMB1
UNIONALL
SELECT*FROMB2
UNIONALL
SELECT*FROMB3
UNIONALL
SELECT*FROMB4
UNIONALL
SELECT*FROMB5)
SELECTID,姓名,一级部门,二级部门,三级部门,四级部门,五级部门FROMBJOIN员工表YONY.部门=B.部门名称
‘捌’ 有层级的,怎么用sql查询返回结果
树形结构的查询。
你需要说明一下, 你的数据库是什么数据库。
Oracle 使用 START WITH CONNECT BY 语句实现树状查询
DB2 与 MySQL 使用 CTE 递归处理来实现。