oracle 中的 sql语句查询

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 中的 sql语句查询相关的知识,希望对你有一定的参考价值。

参考技术A select
lpad('
',(level-1)*3)||ename
from
emp
start
with
ename='smith'
connect
by
prior
empno=mgr
;
select
ename
from
emp
start
with
ename='scott'
connect
by
prior
mgr=empno
order
by
level
desc
;
select
lpad('
',(level-1)*3)||ename
from
emp
start
with
mgr
is
null
connect
by
prior
empno=mgr
;
你问的是oracle中层次树状查询,start
with
。。
connect
by
用法。
start
with
指明树的起点。至于是找上级还是下级(也就是你问的),关键就在于prior的用
法。prior的意思是前一个。
比如:start
with
ename='smith'
connect
by
prior
empno=mgr
;
的意思:ename='smith'表示树的起点,即第一行
connect
by
prior
empno=mgr
表示上一行员工的编号是当前行的管理者,即找smith的下属。
start
with
ename='scott'树的起点,即第一行
connect
by
prior
mgr=empno
表示上一行员工的管理员编号是当前员工的编号,即找scott的上级及间接上级。
参考技术B 1、
select
emp.*
from
emp,(select
deptno,avg(sal)
avg1
from
emp
group
by
deptno)B
where
emp.deptno=B.deptno
and
emp.sal>B.avg1;
2、
select
emp.*,B.avg1
平均工资
from
emp,(select
deptno,avg(sal)
avg1
from
emp
group
by
deptno)B
where
emp.deptno=B.deptno
and
emp.sal>B.avg1;
3、
select
emp.*
from
emp,(select
deptno,avg(sal)
avg1
from
emp
group
by
deptno)B
where
emp.sal=B.avg1;
4、
select
A.*,B.*
from
(select
*
from
emp
where
empno=10)A,
(select
*
from
emp
where
empno=(select
mgr
from
emp
where
empno=10))B;
---
以上,希望对你有所帮助。

oracle语句,我想查询A表中的a字段下的值不等于B表中b的值的数据,

参考技术A 这个的话,需要用到not in来实现。
select * from A where a not in ( select b from B);
备注:以上语句就是从B表中先读取出来所有的b的值,之后通过not in函数进行判断,不符合条件的输出结果。
参考技术B select A.*
from A,B
WHERE A.ID= B.ID
AND A.a<>B.b;
参考技术C ①select * from A where a not in (
select b from B)
② select a from A
minus
select b from B
参考技术D select * from A where a not in (
select b from B)本回答被提问者采纳

以上是关于oracle 中的 sql语句查询的主要内容,如果未能解决你的问题,请参考以下文章

用SQL语句查询出数据表中的字段名以及注释(Oracle)

oracle 中怎样查看以前执行过的SQL语句?

如何写sql语句去掉oracle返回结果中的空值(NULL)

在oracle数据库中的分页SQL语句怎么写?

oracle SQL查询语句

oracle 用sql语句查询 已打补丁列表。