日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
SQL嵌套SELECT語句的用法

SQL嵌套SELECT語句是很常見的SQL語句,下面就為您詳細介紹SQL嵌套SELECT語句的語法,并附相關示例,供您參考學習之用。

嵌套SELECT語句也叫子查詢,一個SELECT 語句的查詢結果能夠作為另一個語句的輸入值。子查詢不但能夠出現(xiàn)在Where子句中,也能夠出現(xiàn)在from子句中,作為一個臨時表使用,也能夠出現(xiàn)在select list中,作為一個字段值來返回。

1、單行子查詢 :單行子查詢是指子查詢的返回結果只有一行數(shù)據(jù)。當主查詢語句的條件語句中引用子查詢結果時可用單行比較符號(=, >, <, >=, <=, <>)來進行比較。

例:

 
 
 
  1. select ename,deptno,sal   
  2. from emp   
  3. where deptno=(select deptno from dept where loc='NEW YORK');  

2、多行子查詢:多行子查詢即是子查詢的返回結果是多行數(shù)據(jù)。當主查詢語句的條件語句中引用子查詢結果時必須用多行比較符號(IN,ALL,ANY)來進行比較。其中,IN的含義是匹配子查詢結果中的任一個值即可("IN" 操作符,能夠測試某個值是否在一個列表中),ALL則必須要符合子查詢的所有值才可,ANY要符合子查詢結果的任何一個值即可。而且須注意ALL 和ANY 操作符不能單獨使用,而只能與單行比較符(=、>、< 、>= 、<= 、<>)結合使用。

例:

1).多行子查詢使用IN操作符號例子:查詢選修了老師名叫Rona(假設唯一)的學生名字

 
 
 
  1. sql> select stName  
  2.  
  3. from Student  
  4.  
  5. where stId in(selectdistinct stId from score where teId=(select teId from teacher where teName='Rona'));  

查詢所有部門編號為A的資料:

 
 
 
  1. SELECT ename,job,sal  
  2.  
  3. FROM EMP  
  4.  
  5. WHERE deptno in ( SELECT deptno FROM dept WHERE dname LIKE 'A%');  

2).多行子查詢使用ALL操作符號例子:查詢有一門以上的成績高于Kaka的最高成績的學生的名字:

 
 
 
  1. sql> select stName  
  2.  
  3. from Student  
  4.  
  5. where stId in(select distinct stId from score where score >all(select score from score where stId=(select stId from Student where stName= 'Kaka') ));  

3). 多行子查詢使用ANY操作符號例子:查詢有一門以上的成績高于Kaka的任何一門成績的學生的名字:

 
 
 
  1. sql> select stName  
  2.  
  3. from Student  
  4.  
  5. where stId in(select distinct stId from score where score >any(select score from score where stId=(select stId from Student where stName='Kaka')));  

3、多列子查詢:當是單行多列的子查詢時,主查詢語句的條件語句中引用子查詢結果時可用單行比較符號(=, >, <, >=, <=, <>)來進行比較;當是多行多列子查詢時,主查詢語句的條件語句中引用子查詢結果時必須用多行比較符號(IN,ALL,ANY)來進行比較。

例:

 
 
 
  1. SELECT deptno,ename,job,sal   
  2. FROM EMP   
  3. WHERE (deptno,sal) IN (SELECT deptno,MAX(sal) FROM EMP GROUP BY deptno);  

4、內(nèi)聯(lián)視圖子查詢

例:

 
 
 
  1. (1)SELECT ename,job,sal,rownum   
  2. FROM (SELECT ename,job,sal FROM EMP ORDER BY sal);   
  3. (2)SELECT ename,job,sal,rownum   
  4. FROM ( SELECT ename,job,sal FROM EMP ORDER BY sal)   
  5. WHERE rownum<=5;  

5、在HAVING子句中使用子查詢

例:

 
 
 
  1. SELECT deptno,job,AVG(sal) FROM EMP GROUP BY deptno,job HAVING AVG(sal)>(SELECT sal FROM EMP WHERE ename='MARTIN'); 

【編輯推薦】

SQL Server UPDATE語句的用法

SQL Server中select into語法詳解

SQL Server創(chuàng)建表和刪除表

SQL Server存儲過程的單步調(diào)試

sql server系統(tǒng)表說明


名稱欄目:SQL嵌套SELECT語句的用法
轉載注明:http://www.5511xx.com/article/dhdhssi.html