自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SQL Server嵌套子查詢的正確應用程序

數(shù)據(jù)庫 SQL Server
以下的文章主要描述的是SQL Server嵌套子查詢的實際應用,以及在實際操作中一些值得我們大家注意的相關事項的描述。

本文主要向你介紹的是SQL Server嵌套子查詢,在實際操作中很多朋友對子查詢(subqueries)的實際使用都存在疑惑,尤其是SQL Server數(shù)據(jù)庫嵌套子查詢(即子查詢中包含一個子查詢)?,F(xiàn)在,就讓我們追本溯源地探究這個問題。

有兩種子查詢類型:標準和相關。標準子查詢執(zhí)行一次,結(jié)果反饋給父查詢。相關子查詢每行執(zhí)行一次,由父查詢找回。在本文中,我將重點討論SQL Server嵌套子查詢(nested subqueries)(我將在以后介紹相關子查詢)。

試想這個問題:你想生成一個賣平墊圈的銷售人員列表。你需要的數(shù)據(jù)分散在四個表格中:人員.聯(lián)系方式(Person.Contact),人力資源.員工(HumanResources.Employee),銷售.銷售訂單標題(Sales.SalesOrderHeader),銷售.銷售訂單詳情(Sales.SalesOrderDetail)。在SQL Server中,你從內(nèi)壓式(outside-in)寫程序,但從外壓式(inside-out)開始考慮非常有幫助,即可以一次解決需要的一個語句。

如果從內(nèi)到外寫起,可以檢查Sales.SalesOrderDetail表格,在LIKE語句中匹配產(chǎn)品數(shù)(ProductNumber)值。你將這些行與Sales.SalesOrderHeader表格連接,從中可以獲得銷售人員IDs(SalesPersonIDs)。然后使用SalesPersonID連接SalesPersonID表格。最后,使用ContactID連接Person.Contact表格。

 

  1. USE AdventureWorks ;   
  2. GO SELECT DISTINCT c.LastName,   
  3. c.FirstName FROM Person.Contact c JOIN HumanResources.  
  4. Employee e ON e.ContactID = c.ContactID WHERE EmployeeID IN   
  5. (SELECT SalesPersonID FROM Sales.SalesOrderHeader WHERE SalesOrderID IN  
  6. (SELECT SalesOrderID FROM Sales.  
  7. SalesOrderDetail WHERE ProductID IN  
  8. (SELECT ProductID FROM Production.Product p WHERE ProductNumber LIKE'FW%')));  
  9. GO  

這個例子揭示了有關SQL Server的幾個絕妙事情。你可以發(fā)現(xiàn),可以用IN()參數(shù)替代SELECT 語句。在本例中,有兩次應用,因此創(chuàng)建了一個SQL Server嵌套子查詢。

我是標準化(normalization)的發(fā)燒友,盡管我不接受其荒謬的長度。由于標準化具有各種查詢而增加了復雜性。在這些情況下子查詢就顯得非常有用,SQL Server嵌套子查詢甚至更加有用。

當你需要的問題分散于很多表格中時,你必須再次將它們拼在一起,這時你可能發(fā)現(xiàn)嵌套子程序就很有用。
 

【編輯推薦】

  1. SQL Server分布式數(shù)據(jù)庫的優(yōu)點與缺點
  2. SQL Server數(shù)據(jù)庫的分布式數(shù)據(jù)庫系統(tǒng)的終極目標
  3. SQL Server數(shù)據(jù)庫鎖的引入的緣由
  4. 用SQL Server數(shù)據(jù)庫鎖來定時間的長短方法
  5. SQL Server 數(shù)據(jù)庫中鎖的自定義
責任編輯:佚名 來源: 比特網(wǎng)
相關推薦

2010-06-29 17:52:02

SQL Server嵌

2010-07-08 15:40:28

SQL Server嵌

2010-07-21 10:50:48

SQL Server存

2010-07-26 17:43:34

SQL Server

2010-08-11 15:48:04

DB2編程

2010-08-11 15:48:04

DB2編程

2010-09-26 09:05:48

SQL嵌套子查詢

2010-07-20 13:26:43

2010-07-26 16:11:45

Microsoft S

2010-07-05 14:34:19

2011-03-04 13:07:06

SQL Server數(shù)

2011-04-01 14:34:31

SQL Server數(shù)嵌套子查詢

2010-01-19 18:45:25

VB.NET窗體嵌套

2010-05-28 15:16:40

MySQL 資源

2009-04-02 10:26:27

2010-05-25 18:01:35

linux MySQL

2010-05-28 19:20:36

MySQL mysql

2009-12-07 14:38:14

PHP foreach

2010-02-22 10:42:12

WCF Stream

2021-09-26 08:30:31

Python應用程序代碼
點贊
收藏

51CTO技術棧公眾號