238
Part II: Building Databases and Working with Data
The subquery (SELECT 3) returns a single value of 3 , which is passed to the outer SELECT
statement. The outer SELECT statement is then executed as if it were the following:SELECT 3 AS SubqueryValue;
Of course, a subquery with only hard-coded values is of little use. Generally, a simple sub-
query fetches data from a table, for example:USE AdventureWorksLT2012;SELECT pd.Name as ProductName
FROM SalesLT.Product pd
WHERE ProductCategoryID
IN (Select ProductCategoryID
FROM SalesLT.ProductCategory
Where Name = 'Cranksets');To execute this query, SQL Server fi rst evaluates the subquery and returns a value to the
outer query:SELECT ProductCategoryID
FROM SalesLT.ProductCategory
WHERE Name = 'Cranksets';Result:ProductCategoryID
--------------------
12The outer query then executes as if it were the following:SELECT Name as ProductName
FROM SalesLT.Product
WHERE ProductCategoryID
= 12Result:ProductName
--------------
LL Crankset
ML Crankset
HL CranksetBest Practice
Use a join to pull data from two data sources that can be fi ltered or manipulated as a whole after the
join. If the data must be manipulated prior to the join, try a derived table subquery.c09.indd 238c09.indd 238 7/30/2012 4:25:10 PM7/30/2012 4:25:10 PM
http://www.it-ebooks.info