複雜的SELECT語句

來源:互聯網
上載者:User

1.集合操作:

     Union 用第二個查詢結果合并第一個查詢結果,同時不顯示重複的行。

     Union all 檢索出所有的行,包括重複的行。

     intersect 返回兩個查詢所檢索出的共有行。

     minus 返回將第二個查詢檢索出的行從第一個查詢檢索出的行中減去之後剩餘的行。

select ename,dname,job
from dept t,emp p
where t.deptno=p.deptno and t.dname='SALES'
union/intersect/minus
select ename,dname,job
from dept t,emp p
where t.deptno=p.deptno and p.job='MANAGER';

2.子查詢:

可以在一個select語句中嵌入另一個完整的select語句,但此句的子查詢的返回結果只能有一個,如想返回多個可用 in 。

select ename,dname,job
from dept t,emp p
where t.deptno=p.deptno and t.dname=
(
select dname
from dept t,emp p
where t.deptno=p.deptno and p.sal=1600.00
);

select  ename,dname,job
from dept t,emp p
where t.deptno=p.deptno and t.dname in
(
select dname
from dept t,emp p
where t.deptno=p.deptno and p.sal>3000.00
);

3.表的串連:

select t.dname

from emp p,dept t
where p.deptno=t.deptno and p.ename='SMITH';

由於實施了關係串連的兩表是任何串連的,所有需要在where子句中設定主關鍵字等於外部關鍵字的條件,否則查詢結果不對。

4.case語句:

*簡單case語句,使用運算式確定傳回值,但case後的變數只有一個;

select t.dname,t.loc,t.deptno,
case t.deptno
when 10 then 'ACCOUNTING'
when 20 then 'RESEARCH'
when 30 then 'SALES'
else 'T'
end
from dept t;

*搜尋case語句,使用條件確定傳回值,但when後面可以跟多個條件。

select t.dname,t.loc,t.deptno,
case
when t.deptno=10 and t.loc='CHICAGO' then 'ACCOUNTING'
when t.deptno=20 then 'RESEARCH'
when t.deptno=30 then 'SALES'
else 'T'
end
from dept t;

5.decode函數:

decode(value,search_value,result,default_value)

如果value和search_value相等,則返回result,否則返回default_value。

select t.dname,t.loc,t.deptno,
decode(t.deptno,
10,'ACCOUNTING',
20,'RESEARCH',
30,'SALES',
'T'
)
from dept t;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.