Advanced Financial Statements Analysis - Investopedia - Educating
02 - Advanced SELECT Statements
-
Upload
chowdhury-golam-kibria -
Category
Documents
-
view
223 -
download
0
description
Transcript of 02 - Advanced SELECT Statements
![Page 1: 02 - Advanced SELECT Statements](https://reader034.fdocuments.us/reader034/viewer/2022051402/55cf8646550346484b960141/html5/thumbnails/1.jpg)
![Page 2: 02 - Advanced SELECT Statements](https://reader034.fdocuments.us/reader034/viewer/2022051402/55cf8646550346484b960141/html5/thumbnails/2.jpg)
SYED SAJID WASIM
Ex-AVP, DHAKABANK Limited
Ex-Sr. Database Engineer, Orion Informatics Limited
Focused on database and development technologies
MCP, MCTS, MCSE on Data Platform & Administration
Working with SQL Server since version 6.5
![Page 3: 02 - Advanced SELECT Statements](https://reader034.fdocuments.us/reader034/viewer/2022051402/55cf8646550346484b960141/html5/thumbnails/3.jpg)
02 | Advanced SELECT Statements
![Page 4: 02 - Advanced SELECT Statements](https://reader034.fdocuments.us/reader034/viewer/2022051402/55cf8646550346484b960141/html5/thumbnails/4.jpg)
Querying Microsoft SQL Server 2012 Jump Start
01 | Introducing SQL Server 2012
SQL Server types of statements; other SQL statement elements; basic SELECT statements
02 | Advanced SELECT StatementsDISTINCT, Aliases, scalar functions and CASE, using JOIN and MERGE; Filtering and sorting data, NULL
values
03 | SQL Server Data Types Introduce data types, data type usage, converting data types, understanding SQL Server function types
04 | Grouping and Aggregating DataAggregate functions, GROUP BY and HAVING clauses, subqueries; self-contained, correlated, and EXISTS; Views, inline-table
valued functions, and derived tables
![Page 5: 02 - Advanced SELECT Statements](https://reader034.fdocuments.us/reader034/viewer/2022051402/55cf8646550346484b960141/html5/thumbnails/5.jpg)
![Page 6: 02 - Advanced SELECT Statements](https://reader034.fdocuments.us/reader034/viewer/2022051402/55cf8646550346484b960141/html5/thumbnails/6.jpg)
![Page 7: 02 - Advanced SELECT Statements](https://reader034.fdocuments.us/reader034/viewer/2022051402/55cf8646550346484b960141/html5/thumbnails/7.jpg)
![Page 8: 02 - Advanced SELECT Statements](https://reader034.fdocuments.us/reader034/viewer/2022051402/55cf8646550346484b960141/html5/thumbnails/8.jpg)
SELECT DISTINCT <column list>
FROM <table or view>
SELECT DISTINCT StoreIDFROM Sales.Customer;
StoreID-------12345709021898710
![Page 9: 02 - Advanced SELECT Statements](https://reader034.fdocuments.us/reader034/viewer/2022051402/55cf8646550346484b960141/html5/thumbnails/9.jpg)
Using aliases to refer to columns
SELECT SalesOrderID, UnitPrice, OrderQty AS Quantity
FROM Sales.SalesOrderDetail;
SELECT SalesOrderID, UnitPrice, Quantity = OrderQty
FROM Sales.SalesOrderDetail;
SELECT SalesOrderID, UnitPrice Quantity
FROM Sales.SalesOrderDetail;
![Page 10: 02 - Advanced SELECT Statements](https://reader034.fdocuments.us/reader034/viewer/2022051402/55cf8646550346484b960141/html5/thumbnails/10.jpg)
SELECT SalesOrderID, ProductID
FROM Sales.SalesOrderDetail AS SalesOrders;
SELECT SalesOrderID, ProductID
FROM Sales.SalesOrderDetail SalesOrders;
SELECT SalesOrders.SalesOrderID, SalesOrders.ProductID
FROM Sales.SalesOrderDetail AS SalesOrders;
![Page 11: 02 - Advanced SELECT Statements](https://reader034.fdocuments.us/reader034/viewer/2022051402/55cf8646550346484b960141/html5/thumbnails/11.jpg)
![Page 12: 02 - Advanced SELECT Statements](https://reader034.fdocuments.us/reader034/viewer/2022051402/55cf8646550346484b960141/html5/thumbnails/12.jpg)
SELECT ProductID, Name, ProductSubCategoryID,
CASE ProductSubCategoryID
WHEN 1 THEN 'Beverages'
ELSE 'Unknown Category'
END
FROM Production.Product
Keyword Expression component
SELECT <select list>
CASE <value to compare>
WHEN <value to match>
THEN <result>
END N/A
FROM <table source>
![Page 13: 02 - Advanced SELECT Statements](https://reader034.fdocuments.us/reader034/viewer/2022051402/55cf8646550346484b960141/html5/thumbnails/13.jpg)
![Page 14: 02 - Advanced SELECT Statements](https://reader034.fdocuments.us/reader034/viewer/2022051402/55cf8646550346484b960141/html5/thumbnails/14.jpg)
![Page 15: 02 - Advanced SELECT Statements](https://reader034.fdocuments.us/reader034/viewer/2022051402/55cf8646550346484b960141/html5/thumbnails/15.jpg)
Join Type Description
Cross Combines all rows in both tables (creates Cartesian product).
Inner Starts with Cartesian product; applies filter to match rows between
tables based on predicate.
Outer Starts with Cartesian product; all rows from designated table preserved,
matching rows from other table retrieved. Additional NULLs inserted as
placeholders.
![Page 16: 02 - Advanced SELECT Statements](https://reader034.fdocuments.us/reader034/viewer/2022051402/55cf8646550346484b960141/html5/thumbnails/16.jpg)
![Page 17: 02 - Advanced SELECT Statements](https://reader034.fdocuments.us/reader034/viewer/2022051402/55cf8646550346484b960141/html5/thumbnails/17.jpg)
SELECT SOH.SalesOrderID, SOH.OrderDate, SOD.ProductID, SOD.UnitPrice, SOD.OrderQty
FROM Sales.SalesOrderHeader AS SOH JOIN Sales.SalesOrderDetail AS SOD ON SOH.SalesOrderID = SOD.SalesOrderID;
FROM t1 JOIN t2 ON t1.column = t2.column
![Page 18: 02 - Advanced SELECT Statements](https://reader034.fdocuments.us/reader034/viewer/2022051402/55cf8646550346484b960141/html5/thumbnails/18.jpg)
![Page 19: 02 - Advanced SELECT Statements](https://reader034.fdocuments.us/reader034/viewer/2022051402/55cf8646550346484b960141/html5/thumbnails/19.jpg)
SELECT CUST.CustomerID, CUST.StoreID, ORD.SalesOrderID, ORD.OrderDateFROM Sales.Customer AS CUSTLEFT OUTER JOIN Sales.SalesOrderHeader ASORDON CUST.CustomerID = ORD.CustomerIDWHERE ORD.SalesOrderID IS NULL;
![Page 20: 02 - Advanced SELECT Statements](https://reader034.fdocuments.us/reader034/viewer/2022051402/55cf8646550346484b960141/html5/thumbnails/20.jpg)
![Page 21: 02 - Advanced SELECT Statements](https://reader034.fdocuments.us/reader034/viewer/2022051402/55cf8646550346484b960141/html5/thumbnails/21.jpg)
SELECT EMP1.BusinessEntityID, EMP2.JobTitleFROM HumanResources.Employee AS EMP1 CROSS JOIN HumanResources.Employee AS EMP2;
![Page 22: 02 - Advanced SELECT Statements](https://reader034.fdocuments.us/reader034/viewer/2022051402/55cf8646550346484b960141/html5/thumbnails/22.jpg)
![Page 23: 02 - Advanced SELECT Statements](https://reader034.fdocuments.us/reader034/viewer/2022051402/55cf8646550346484b960141/html5/thumbnails/23.jpg)
SELECT EMP.EmpID, EMP.LastName,EMP.JobTitle, EMP.MgrID, MGR.LastName
FROM HR.Employees AS EMPINNER JOIN HR.Employees AS MGR ON EMP.MgrID = MGR.EmpID ;
SELECT EMP.EmpID, EMP.LastName,EMP.Title, MGR.MgrID
FROM HumanResources.Employee AS EMPLEFT OUTER JOIN HumanResources.Employee AS MGRON EMP.MgrID = MGR.EmpID;
![Page 24: 02 - Advanced SELECT Statements](https://reader034.fdocuments.us/reader034/viewer/2022051402/55cf8646550346484b960141/html5/thumbnails/24.jpg)
![Page 25: 02 - Advanced SELECT Statements](https://reader034.fdocuments.us/reader034/viewer/2022051402/55cf8646550346484b960141/html5/thumbnails/25.jpg)
![Page 26: 02 - Advanced SELECT Statements](https://reader034.fdocuments.us/reader034/viewer/2022051402/55cf8646550346484b960141/html5/thumbnails/26.jpg)
![Page 27: 02 - Advanced SELECT Statements](https://reader034.fdocuments.us/reader034/viewer/2022051402/55cf8646550346484b960141/html5/thumbnails/27.jpg)
SELECT SalesOrderID, CustomerID, OrderDateFROM Sales.SalesOrderHeaderORDER BY OrderDate;
SELECT SalesOrderID, CustomerID, YEAR(OrderDate) AS OrderYearFROM Sales.SalesOrderHeaderORDER BY OrderYear;
SELECT SalesOrderID, CustomerID, OrderDateFROM Sales.SalesOrderHeaderORDER BY OrderDate DESC;
![Page 28: 02 - Advanced SELECT Statements](https://reader034.fdocuments.us/reader034/viewer/2022051402/55cf8646550346484b960141/html5/thumbnails/28.jpg)
WHERE clauses use predicates
Must be expressed as logical conditions
Only rows for which predicate evaluates to TRUE are accepted
Values of FALSE or UNKNOWN are filtered out
WHERE clause follows FROM, precedes other clauses
Can’t see aliases declared in SELECT clause
Can be optimized by SQL Server to use indexes
![Page 29: 02 - Advanced SELECT Statements](https://reader034.fdocuments.us/reader034/viewer/2022051402/55cf8646550346484b960141/html5/thumbnails/29.jpg)
SELECT CustomerID, TerritoryIDFROM Sales.CustomerWHERE TerritoryID = 6;
SELECT CustomerID, TerritoryIDFROM Sales.CustomerWHERE TerritoryID >= 6;
SELECT CustomerID, TerritoryID, StoreIDFROM Sales.CustomerWHERE StoreID >= 1000 AND StoreID <= 1200;
![Page 30: 02 - Advanced SELECT Statements](https://reader034.fdocuments.us/reader034/viewer/2022051402/55cf8646550346484b960141/html5/thumbnails/30.jpg)
![Page 31: 02 - Advanced SELECT Statements](https://reader034.fdocuments.us/reader034/viewer/2022051402/55cf8646550346484b960141/html5/thumbnails/31.jpg)
SELECT TOP (20) SalesOrderID, CustomerID, TotalDueFROM Sales.SalesOrderHeaderORDER BY TotalDue DESC;
SELECT TOP (20) WITH TIES SalesOrderID, CustomerID, TotalDueFROM Sales.SalesOrderHeaderORDER BY TotalDue DESC;
SELECT TOP (1) PERCENT SalesOrderID, CustomerID, TotalDueFROM Sales.SalesOrderHeaderORDER BY TotalDue DESC;
![Page 32: 02 - Advanced SELECT Statements](https://reader034.fdocuments.us/reader034/viewer/2022051402/55cf8646550346484b960141/html5/thumbnails/32.jpg)
SELECT CustomerID, StoreID, TerritoryIDFROM Sales.CustomerWHERE StoreID IS NULLORDER BY TerritoryID
![Page 33: 02 - Advanced SELECT Statements](https://reader034.fdocuments.us/reader034/viewer/2022051402/55cf8646550346484b960141/html5/thumbnails/33.jpg)
![Page 34: 02 - Advanced SELECT Statements](https://reader034.fdocuments.us/reader034/viewer/2022051402/55cf8646550346484b960141/html5/thumbnails/34.jpg)
![Page 35: 02 - Advanced SELECT Statements](https://reader034.fdocuments.us/reader034/viewer/2022051402/55cf8646550346484b960141/html5/thumbnails/35.jpg)
![Page 36: 02 - Advanced SELECT Statements](https://reader034.fdocuments.us/reader034/viewer/2022051402/55cf8646550346484b960141/html5/thumbnails/36.jpg)
©2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Office, Azure, System Center, Dynamics and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.