3 11 從多個表中返回丟失的資料

2022-06-07 23:51:11 字數 2331 閱讀 7886

問題:

同時返回多個表中丟失的資料。要從表dept中返回emp不存在的行(所有沒有員工的部門)需要做外聯結。考慮下面的查詢。它返回表dept中的deptno和name欄位,以及每個部門中所有員工的姓名。(如果該某個部門有員工的話):

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

from dept d left outer join emp e

on (d.deptno = 3.deptno)

最後一行operations部門,儘管該部門沒有員工,還是返回了這一行,因為表emp被外聯結到了表dept。現在,假設有乙個員工沒有部門,那麼如何得到在上述的結果集,並未該沒有部門的員工返回一行呢?換句話說,要在同乙個的查詢中國同時外聯接到表emp和dept。在建立新員工之前,開始可能會這麼做:

insert into emp (empno,ename,job,mgr,hiredae,sal,comm,deptno) 

select 1111,'yoda','jedi',null,hiredate,sal,comm,null

from emp

where ename = 'king'

select d.deptno,d.name,e.ename

from dept d right outer join emp e 

on (d.deptno = e.deptno)

使用外聯結是想返回新建立的員工,但卻將原結果集中的operations部門丟掉了。最終的結果集螢微員工yoda和部門operations各返回一行。

解決方案:使用基於公共之的完全外聯結來返回這兩個表中丟失的資料。

select d.deptno,d.name,e.ename

from dept d full outer join emp e

on (d.deptno = e.deptno)

或者,合併兩個不同外聯結的結果:

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

from dept d right outer jin emp e

on(d.deptno = e.deptno)

union 

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

from dept d, emp e

on (d.deptno = e.deptno)

問題:同時返回多個表中丟失的資料。要從表dept中返回emp不存在的行(所有沒有員工的部門)需要做外聯結。考慮下面的查詢。它返回表dept中的deptno和name欄位,以及每個部門中所有員工的姓名。(如果該某個部門有員工的話):

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

from dept d left outer join emp e

on (d.deptno = 3.deptno)

最後一行operations部門,儘管該部門沒有員工,還是返回了這一行,因為表emp被外聯結到了表dept。現在,假設有乙個員工沒有部門,那麼如何得到在上述的結果集,並未該沒有部門的員工返回一行呢?換句話說,要在同乙個的查詢中國同時外聯接到表emp和dept。在建立新員工之前,開始可能會這麼做:

insert into emp (empno,ename,job,mgr,hiredae,sal,comm,deptno) 

select 1111,'yoda','jedi',null,hiredate,sal,comm,null

from emp

where ename = 'king'

select d.deptno,d.name,e.ename

from dept d right outer join emp e 

on (d.deptno = e.deptno)

使用外聯結是想返回新建立的員工,但卻將原結果集中的operations部門丟掉了。最終的結果集螢微員工yoda和部門operations各返回一行。

解決方案:使用基於公共之的完全外聯結來返回這兩個表中丟失的資料。

select d.deptno,d.name,e.ename

from dept d full outer join emp e

on (d.deptno = e.deptno)

或者,合併兩個不同外聯結的結果:

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

from dept d right outer jin emp e

on(d.deptno = e.deptno)

union 

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

from dept d, emp e

on (d.deptno = e.deptno)

從函式中返回多個值的方法

原文 第一種方法是利用全域性變數,因此根本不用返回,只要直接給全域性變數賦值即可。例 dim intnumber 1 intnumber 1 40 dim intnumber 2 intnumber 2 80 public sub passvalues intnumber 1 intnumber 1...

flashback恢復表中丟失資料的方法

sql select from zzw temp2 未選定行 sql insert into zzw temp2 values 1,100 已建立 1 行。sql insert into zzw temp2 values 2,200 已建立 1 行。sql insert into zzw temp2...

QTP指令碼編寫技巧 從函式中返回多個值的方法

relevantcodes.com 的 passing multiple values from functions 這篇文章介紹了如何從函式 function 中返回多個值 第一種方法是利用全域性變數,因此根本不用返回,只要直接給全域性變數賦值即可。例 dim intnumber 1 intnum...