怎么查下级oracle,查询所有下级

oracle递归查询的问题,如何查询出现机构和其属下所有机构

select *

目前创新互联已为近1000家的企业提供了网站建设、域名、雅安服务器托管、网站托管维护、企业网站设计、路北网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

from table_name

where 1 = 1 --没有条件可以不写where

connect by parent_id = prior child_id

start with parent_id = 1

oracle如何查询任意节点下的所有子节点

向下递归+叶子节点过滤就行了,例子:

--模拟数据

with tmp(id,pid) as

(SELECT 'A','' FROM DUAL UNION ALL

SELECT 'B','A' FROM DUAL UNION ALL

SELECT 'C','A' FROM DUAL UNION ALL

SELECT 'D','B' FROM DUAL UNION ALL

SELECT 'E','B' FROM DUAL UNION ALL

SELECT 'F','C' FROM DUAL UNION ALL

SELECT 'G','F' FROM DUAL )

SELECT ID FROM TMP T

WHERE CONNECT_BY_ISLEAF=1 --只显示叶子节点

START WITH T.ID='A'  --递归起点,即查询条件

CONNECT BY PRIOR ID=PID --递归条件,向下递归

求Oracle查询上下级关系语句

如果是SQL2005以上则可以用CTE递归写法

use tempdb

go

create table #emp

(eid integer not null,

ename varchar(10) not null,

epid integer null,

)

insert into #emp

select 1,'A',5

union all

select 2,'me',3

union all

select 3,'bos',4

union all

select 4,'boss',null

select * from #emp

;with empcte as

(select epid,(select ename from #emp b where b.eid = a.epid) as name from #emp a where ename = 'me'

union all

select b.epid,(select ename from #emp where eid = b.epid) as name from empcte a join #emp b on a.epid = b.eid

)

select * from empcte where epid is not null

oracle查询

1.系统表

ORACLE数据库的系统参数都存储在数据库中,可以通过SQLPLUS,以用户SYSYTEM进行查询。几个重要的表或者视图如下:

v$controlfile:控制文件的信息;

v$datafile:数据文件的信息;

v$log:日志文件的信息;

v$process:处理器的信息;

v$session:会话信息;

v$transaction:事务信息;

v$resource:资源信息;

v$sga:系统全局区的信息。

上面的视图名中的‘v$’,只是视图名字中的字符。类似于上面的视图或表还有很多,位于:

$ORACLE_HOME/RDBMS/ADMIN/CATALOG.SQL文件中。

这些视图或表可以在SQLPLUS中用SELECT语句进行查询。

2.数据字典视图

表和列

DBA_TABLES、ALL_TABLES和USER_TABLES显示了有关数据库表的一般信息。

DBA_TAB_COLUMNS、ALL_TAB_COLUMNS和USER_TAB_COLUMNS显示了每个数据库表的列的信息。

注意:DBA_OBJECTS、ALL_OBJECTS和USER_OBJECTS显示了模式对象的信息,包括表。

完整性约束

DBA_CONSTRAINTS、ALL_CONSTRAINTS和USER_CONSTRAINST显示有关约束的一般信息。

DBA_CONS_COLUMNS、ALL_CONS_COLUMNS和USER_CONS_COLUMNS显示有关列的相关约束的一般信息。

视图

DBA_VIEWS、ALL_VIEWS和USER_VIEWS。

注意:DBA_OBJECTS、ALL_OBJECTS和USER_OBJECTS显示了模式对象的信息,包括视图。

序列

DBA_SEQUENCES、ALL_SEQUENCES和USER_SEQUENCES。

注意:DBA_OBJECTS、ALL_OBJECTS和USER_OBJECTS显示了模式对象的信息,包括序列。

同义词

DBA_SYNONYMS、ALL_SYNONYMS和USER_SYNONYMS。

注意:DBA_OBJECTS、ALL_OBJECTS和USER_OBJECTS显示了模式对象的信息,包括同义词。

索引

DBA_INDEXS、ALL_INDEXS、USER_INDEXS、DBA_IND_COLUMNS、ALL_IND_COLUMNS和USER_IND_COLUMNS。

用户

DBA_USERS。

角色

DBA_ROLES。

表空间定额

DBA_TS_QUOTAS。

配置表

DBA_PROFILES。

表空间

DBA_TABLESPACES。

数据文件

DBA_DATA_FILES。

DBA_SEGMENTS、USER_SEGMENT。

回滚段

DBA_ROLLBACK_SEGS、V$ROLLNAME、V$ROLLSTAT。

第二道题你参考楼上的就行了

oracle 查询问题,我想查询organ_name(地区名称)和上级地区名称(我想根据parent_id自连接查询)

你没有贴表名和结构代码,根据你的贴图,写了如下SQL,希望对你有帮助,如有问题可以追问,

你的表是树级的结构,有上下级关系,查询是比较容易的,用编号和用名称查没本质区别,你在套一层就可以了,

select *

from 表名 a

where a.organ_id != '3709'

start with a.organ_id = '3709'

connect by prior a.parent_id = a.organ_id

查 泰安市 的上级地区应该是 山东

如何查询oracle的

1.查看所有用户:

select * from dba_users;

select * from all_users;

select * from user_users;

2.查看用户或角色系统权限(直接赋值给用户或角色的系统权限):

select * from dba_sys_privs;

select * from user_sys_privs; (查看当前用户所拥有的权限)

3.查看角色(只能查看登陆用户拥有的角色)所包含的权限

sqlselect * from role_sys_privs;

4.查看用户对象权限:

select * from dba_tab_privs;

select * from all_tab_privs;

select * from user_tab_privs;

5.查看所有角色: select * from dba_roles;

6.查看用户或角色所拥有的角色:

select * from dba_role_privs;

select * from user_role_privs;

7.查看哪些用户有sysdba或sysoper系统权限(查询时需要相应权限)

select * from V$PWFILE_USERS


名称栏目:怎么查下级oracle,查询所有下级
网站链接:http://azwzsj.com/article/hspgoc.html