99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

T-SQL 子查詢 嵌套查詢

2018-12-14 14:50 更新

子查詢或內(nèi)部查詢或嵌套查詢是另一個(gè)SQL Server查詢內(nèi)的查詢,并嵌入在WHERE子句中。 子查詢用于返回將在主查詢中使用的數(shù)據(jù)作為進(jìn)一步限制要檢索的數(shù)據(jù)的條件。

子查詢可以與SELECT,INSERT,UPDATE和DELETE語句以及諸如=,<,>,> =,<=,IN,BETWEEN等運(yùn)算符一起使用。

子查詢必須遵循幾個(gè)規(guī)則

  • 子查詢語句必須寫在括號(hào)內(nèi)。

  • 子查詢必須包括SELECT子句和FROM子句。

  • 子查詢可以使用WHERE,GROUP BY和HAVING子句。

  • 子查詢不能使用COMPUTE或FOR BROWSE子句。

  • 只有在使用了TOP子句時(shí),才能使用ORDER BY子句。

  • 您可以嵌套最多32個(gè)級(jí)別的子查詢。

帶SELECT語句的子查詢

語法

子查詢最常用于SELECT語句,以下是基本語法:

SELECT column_name [, column_name ] 
FROM   table1 [, table2 ] 
WHERE  column_name OPERATOR 
   (SELECT column_name [, column_name ] 
   FROM table1 [, table2 ] 
   [WHERE]) 

請(qǐng)參考具有以下記錄的CUSTOMERS表:

ID  NAME       AGE       ADDRESS            SALARY 
1   Ramesh     32        Ahmedabad          2000.00 
2   Khilan     25        Delhi              1500.00 
3   kaushik    23        Kota               2000.00 
4   Chaitali   25        Mumbai             6500.00 
5   Hardik     27        Bhopal             8500.00 
6   Komal      22        MP                 4500.00 
7   Muffy      24        Indore             10000.00 

讓我們使用SELECT語句應(yīng)用以下子查詢:

SELECT *  
   FROM CUSTOMERS
   WHERE ID IN (SELECT ID FROM CUSTOMERS WHERE SALARY > 4500)

上述命令將產(chǎn)生以下結(jié)果集:

ID  NAME       AGE       ADDRESS          SALARY 
4   Chaitali   25        Mumbai           6500.00 
5   Hardik     27        Bhopal           8500.00 
7   Muffy      24        Indore           10000.00 

帶有INSERT語句的子查詢

子查詢也可以與INSERT語句一起使用。INSERT語句使用從子查詢返回的數(shù)據(jù)插入到另一個(gè)表中??梢允褂米址掌诨驍?shù)字函數(shù)中的任何一個(gè)修改子查詢中選定的數(shù)據(jù)。

語法

下面是基本的語法。

INSERT INTO table_name [ (column1 [, column2 ]) ] 
   SELECT [ *|column1 [, column2 ] 
   FROM table1 [, table2 ] 
   [ WHERE VALUE OPERATOR ]

創(chuàng)建一張命名為CUSTOMERS_BKP的表,表結(jié)構(gòu)與CUSTOMERS表相同,并將CUSTOMERS表的數(shù)據(jù)復(fù)制到CUSTOMERS_BKP表中。

以下是將完整的CUSTOMERS表數(shù)據(jù)復(fù)制到CUSTOMERS_BKP的語法:

INSERT INTO CUSTOMERS_BKP 
   SELECT * FROM CUSTOMERS  
   WHERE ID IN (SELECT ID FROM CUSTOMERS)

帶有UPDATE語句的子查詢

子查詢可以與UPDATE語句結(jié)合使用。 當(dāng)使用帶有UPDATE語句的子查詢時(shí),可以更新表中的單個(gè)或多個(gè)列。

語法

以下是基本語法。

UPDATE table 
SET column_name = new_value 
[ WHERE OPERATOR [ VALUE ] 
   (SELECT COLUMN_NAME 
   FROM TABLE_NAME) 
   [ WHERE) ] 

以下命令對(duì)CUSTOMERS表中AGE大于或等于27的所有客戶的SALARY乘以0.25。

UPDATE CUSTOMERS 
   SET SALARY = SALARY * 0.25 
   WHERE AGE IN (SELECT AGE FROM CUSTOMERS_BKP WHERE AGE >= 27 )

上述命令將產(chǎn)生以下結(jié)果集:

ID  NAME       AGE       ADDRESS             SALARY 
1   Ramesh     32        Ahmedabad           500.00 
2   Khilan     25        Delhi               1500.00 
3   kaushik    23        Kota                2000.00 
4   Chaitali   25        Mumbai              6500.00 
5   Hardik     27        Bhopal              2125.00 
6   Komal      22        MP                  4500.00 
7   Muffy      24        Indore              10000.00 

使用DELETE語句的子查詢

子查詢可以與DELETE語句一起使用,就像上面提到的任何其他語句一樣。

語法

以下是基本語法。

DELETE FROM TABLE_NAME 
[ WHERE OPERATOR [ VALUE ] 
   (SELECT COLUMN_NAME 
   FROM TABLE_NAME) 
   [ WHERE) ] 

以下命令將刪除CUSTOMERS表中所有的年齡大于或等于27的客戶的記錄。

DELETE FROM CUSTOMERS 
   WHERE AGE IN (SELECT AGE FROM CUSTOMERS_BKP WHERE AGE >=27 )

上述命令將產(chǎn)生以下結(jié)果集:

ID  NAME       AGE       ADDRESS          SALARY 
2   Khilan     25        Delhi            1500.00 
3   kaushik    23        Kota             2000.00 
4   Chaitali   25        Mumbai           6500.00  
6   Komal      22        MP               4500.00 
7   Muffy      24        Indore           10000.00 

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)