程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

子查詢

編輯:關於SqlServer

子查詢
1。select ... where 列或運算式 比較運算運算【any|all](子查詢)
只要主查詢中列或運算式與子查詢所得結果中任一(any)或全部(all)數據符合比較條件的話則主查詢的結果為我們要的數據

選出不同的人金額最高的訂單
select * from sales a
where tomat=(select max(totmat) from sales where name=a.name)

select sale_id,tot_amt
from sales
where tot_amt>any(select tot_amt from sales where sale_id='e0013'and 'order_date='1996/11/10')

2。select ...where 列或運算式[not] in (子查詢)
只要主查詢中列或運算式是在(不在)子查詢所得結果列表中的話,則主查詢的結果為我們要的數據
select sales_id,tot_amt
from sales
where sale _id in(select sale_id from employee where sex='F')
3.select ...where [not] exists ( 子查詢)
子查詢的結果至少存在一條數據時,則主查詢的結果為我們要的數據。(exists)或自查詢的結果找不到數據時,則主查詢的結果為我們要的數據(not exists)
我們經常查詢的兩個表有多少重復的記錄就用這個
以下范例讓你找出滯銷的產品,也就是尚未有任何銷售記錄的庫存產品。此范例主要是查詢以庫文件中的每一條產品代碼到銷售明細表中去查詢,如果查詢不到任何一條,表示該產品未曾賣出任何一件。
select * from stock a
where not exists(select * from sale_item b
where a.prod_id=b.prod_id and a.stup_id=b.stup_id)

select emp_no,emp_name from employee
from employee a
where (select sum(tot_amt) from sales b where a.sale_id=b.emp_no)<200000

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved