日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle标量子查询的优势,标量子查询

發(fā)布時間:2025/3/8 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle标量子查询的优势,标量子查询 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

--標(biāo)量子查詢

select e.empno, e.ename, e.sal, e.deptno,

(select d.dname from dept d where e.deptno = d.deptno)as dname

from emp e

--插入一條數(shù)據(jù)

insert into emp(empno,deptno) values(9999,null)--返回結(jié)果15條記錄

--改成left join(hash outer)

select e.empno, e.ename, e.sal, e.deptno,d.dname

from emp e

left join dept d

on (e.deptno = d.deptno)

--NL outer

select /*+ use_nl(e,d) */e.empno, e.ename, e.sal, e.deptno,d.dname

from emp e

left join dept d

on (e.deptno = d.deptno)

/*Note:修改后plan一般有outer字樣,如果沒有,注意是否改錯。*/

--用left join 優(yōu)化標(biāo)量子查詢之聚合改寫

select dp.department_id, dp.department_name, dp.location_id,

nvl((select sum(em.salary)

from hr.employees em

where em.department_id = dp.department_id),

0) as sum_dept_salary

from hr.departments dp

--錯誤寫法

select dp.department_id, dp.department_name, dp.location_id,

nvl(sum(em.salary), 0) as sum_sal

from hr.departments dp

left join hr.employees em

on dp.department_id = em.department_id

--原標(biāo)量子查詢改寫為:

select em.department_id, sum(em.salary) as sum_sal

from hr.employees em

group by em.department_id

--左聯(lián)改寫后的內(nèi)聯(lián)視圖

select dp.department_id, dp.department_name, dp.location_id,

nvl(sum(e.sum_sal), 0) as sum_sal

from hr.departments dp

left join (select e.department_id, sum(e.salary) as sum_sal

from hr.employees e

group by e.department_id) e

on (dp.department_id = e.department_id)

group by dp.department_id, dp.department_name, dp.location_id

--

create table dept2 as select * from scott.dept;

insert into dept2? select * from scott.dept where deptno=10

select t1.job, t1.deptno,

(select distinct dname from dept2 b where b.deptno = t1.deptno) as dname

from scott.emp t1

order by 1, 2, 3

--以下改寫結(jié)果變了

select distinct t1.job, b.deptno, b.dname

from scott.emp t1

left join dept2 b

on t1.deptno = b.deptno

--正確改寫

select t1.job, t1.deptno, f.dname

from scott.emp t1

left join (select b.deptno, b.dname

from dept2 b

group by b.deptno, b.dname) f

on (f.deptno = t1.deptno)

總結(jié)

以上是生活随笔為你收集整理的oracle标量子查询的优势,标量子查询的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。