2. SELECT USE AdventureWorks GO SELECT ContactID, Title,
FirstName, LastName FROM Person.Contact Comment: Person is the
Schema and Contact is the Table
3. SELECT ALL USE AdventureWorks GO SELECT * FROM
Person.Contact Comment: Good practise to explicity reference only
necessary columns
4. FILTER USE AdventureWorks GO SELECT Title, FirstName,
LastName FROM Person.Contact WHERE Title = 'Ms.'
5. AND USE AdventureWorks GO SELECT Title , FirstName, LastName
FROM Person .Contact WHERE Title = 'Ms.' AND LastName =
'Antrim'
6. OR USE AdventureWorks GO SELECT Title , FirstName, LastName
FROM Person .Contact WHERE Title = 'Ms.' OR LastName =
'Antrim'
7. NOT USE AdventureWorks GO SELECT Title, FirstName, LastName
FROM Person.Contact WHERE NOT Title = 'Ms.'
8. WITHOUT PARENTHESIS USE AdventureWorks GO SELECT Title ,
FirstName, LastName FROM Person .Contact WHERE Title = 'Ms.' AND
FirstName = 'Catherine' OR LastName = 'Adams'
9. With Parentheses SELECT ContactID, Title, FirstName,
MiddleName, LastName FROM Person.Contact WHERE (Title = 'Ms.' AND
FirstName = 'Catherine') OR LastName = 'Adams'
10. BETWEEN USE AdventureWorks GO SELECT SalesOrderID, ShipDate
FROM Sales.SalesOrderHeader WHERE ShipDate BETWEEN '7/28/2002' AND
'7/29/2002'
11. Less Than USE AdventureWorks GO SELECT ProductID , Name ,
StandardCost FROM Production .Product WHERE StandardCost <
110.0000
12. IS NULL USE AdventureWorks GO SELECT ProductID , Name ,
Weight FROM Production .Product WHERE Weight IS NULL
13. IN USE AdventureWorks GO SELECT ProductID , Name , Color
FROM Production .Product WHERE Color IN ( 'Silver' , 'Black' ,
'Red' )
14. LIKE USE AdventureWorks GO SELECT ProductID , Name FROM
Production .Product WHERE Name LIKE 'B%'
15. Escape USE AdventureWorks GO SELECT ProductID , Name FROM
Production .Product WHERE Name LIKE '%/_%' ESCAPE '/'
16. ORDER BY USE AdventureWorks GO SELECT p .Name, h.EndDate,
h.ListPrice FROM Production .Product p INNER JOIN
Production.ProductListPriceHistory h ON p .ProductID = h.ProductID
ORDER BY p .Name, h.EndDate
17. ORDER - DESC USE AdventureWorks GO SELECT p .Name,
h.EndDate, h.ListPrice FROM Production .Product p INNER JOIN
Production.ProductListPriceHistory h ON p .ProductID = h.ProductID
ORDER BY p .Name DESC , h.EndDate DESC Comment: Although queries
sometimes appear to return data properly without an ORDER BY
clause, the natural ordering of results is determined by the
physical key column order in the clustered index
18. ORDER BY Unselected Column USE AdventureWorks GO SELECT p
.Name FROM Production .Product p
19. TOP USE AdventureWorks GO SELECT TOP 10 v .Name,
v.CreditRating FROM Purchasing .Vendor v ORDER BY v .CreditRating
DESC , v.Name
20. Variables USE AdventureWorks GO DECLARE @Percentage float
SET @Percentage = 1 SELECT TOP (@Percentage) PERCENT Name FROM
Production .Product ORDER BY Name
21. GROUP BY USE AdventureWorks GO SELECT OrderDate , SUM
(TotalDue) TotalDueByOrderDate FROM Sales .SalesOrderHeader WHERE
OrderDate BETWEEN '7/1/2001' AND '7/31/2001' GROUP BY
OrderDate
22. GROUP BY ALL USE AdventureWorks GO SELECT OrderDate , SUM
(TotalDue) TotalDueByOrderDate FROM Sales .SalesOrderHeader WHERE
OrderDate BETWEEN '7/1/2001' AND '7/31/2001' GROUP BY ALL
OrderDate
23. HAVING USE AdventureWorks GO SELECT s .Name, COUNT
(w.WorkOrderID) Cnt FROM Production .ScrapReason s INNER JOIN
Production.WorkOrder w ON s .ScrapReasonID = w.ScrapReasonID GROUP
BY s .Name HAVING COUNT (*)>50
24. DISTINCT USE AdventureWorks GO SELECT DISTINCT HireDate
FROM HumanResources .Employee
25. AVG USE AdventureWorks GO SELECT AVG (ListPrice) FROM
Production .Product
26. AVG and DISTINCT USE AdventureWorks GO SELECT AVG (
DISTINCT ListPrice ) FROM Production .Product
27. Column ALIASES USE AdventureWorks GO SELECT Color AS
'Grouped Color' , AVG ( DISTINCT ListPrice ) AS 'Average Distinct
List Price' , AVG (ListPrice) 'Average List Price' FROM Production
.Product GROUP BY Color
28. INFORMATION SCHEMA USE AdventureWorks GO SELECT column_name
+ ' IS NULL AND ' FROM INFORMATION_SCHEMA.columns WHERE table_name
= 'Employee' ORDER BY ORDINAL_POSITION
29. String concatenation USE AdventureWorks GO SELECT 'The ' +
p.name + ' is only ' + CONVERT ( varchar (25),p.ListPrice) + '!'
FROM Production .Product p WHERE p .ListPrice between 100 AND 120
ORDER BY p .ListPrice
30. Comma Delimited List USE AdventureWorks GO DECLARE @Shifts
varchar (20) SET @Shifts = '' SELECT @Shifts = @Shifts + s.Name +
',' FROM HumanResources .Shift s ORDER BY s .EndTime SELECT
@Shifts
31. SELECT INTO USE AdventureWorks GO SELECT CustomerID , Name
, SalesPersonID, Demographics INTO Store_Archive FROM Sales .Store
Comment: This creates a table called Store_Archive
32. Create a schema with SELECT USE AdventureWorks GO SELECT
CustomerID , Name , SalesPersonID, Demographics INTO Store_Archive2
FROM Sales .Store WHERE 1 =0
33. Puzzle I've got The Customers table : T1 .. has two columns
: ID(int) , IsDeleted(bit) I want in a one sql query to return :
NumberOfAllCustomers -- NumberOfDeletedCustomers --
NumberOfExistingCustomers
34. Prepare data for puzzle USE tempdb ; IF OBJECT_ID (
'dbo.T1' ) IS NOT NULL DROP TABLE dbo .T1; CREATE TABLE dbo .t1 (
ID INT NOT NULL, IsDeleted bit ); INSERT INTO dbo .T1(ID,
IsDeleted) VALUES (1,0); INSERT INTO dbo .T1(ID, IsDeleted) VALUES
(2,1); INSERT INTO dbo .T1(ID, IsDeleted) VALUES (3,0); INSERT INTO
dbo .T1(ID, IsDeleted) VALUES (4,1); INSERT INTO dbo .T1(ID,
IsDeleted) VALUES (5,0); GO
35. Check expected answers SELECT Count (ID) AS
NumberOfAllExistingCustomers FROM T1 SELECT Count (ID) AS
NumberOfDeletedCustomers FROM T1 WHERE IsDeleted = 1 SELECT Count
(ID) AS NumberOfExistingCustomers FROM T1 WHERE IsDeleted = 0
36. Answer One SELECT COUNT (*) AS NumberOfAllCustomers , SUM (
CASE IsDeleted WHEN 1 THEN 1 END ) AS NumberOfDeletedCustomers ,
SUM ( CASE IsDeleted WHEN 0 THEN 1 END ) AS
NumberOfExistingCustomers FROM T1 GO
37. Answer Two select numberOfAllCustomers ,
numberOfDeletedCustomers, numberOfAllCustomers -
numberOfDeletedCustomers AS NumberOfExistingCustomers from ( select
( select count (id) from t1 ) numberOfAllCustomers, ( select count
(id) from t1 where isdeleted = cast (1 as bit ))
numberOfDeletedCustomers ) t;