Created
September 13, 2017 15:43
-
-
Save Zabaa/af1c27d9b6da754d75703f5cc86d5199 to your computer and use it in GitHub Desktop.
CTE Example
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
WITH DirectReports (ManagerID, EmployeeID, Title, Level) | |
AS | |
( | |
-- Anchor member definition | |
SELECT e.ManagerID, e.EmployeeID, e.Title, | |
0 AS Level | |
FROM dbo.MyEmployees AS e | |
WHERE e.ManagerID IS NULL | |
UNION ALL | |
-- Recursive member definition | |
SELECT e.ManagerID, e.EmployeeID, e.Title, | |
Level + 1 | |
FROM dbo.MyEmployees AS e | |
INNER JOIN DirectReports AS d | |
ON e.ManagerID = d.EmployeeID | |
) | |
-- Statement that executes the CTE | |
SELECT ManagerID, EmployeeID, Title, Level | |
FROM DirectReports | |
WHERE Level = 0; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- Create an Employee table. | |
CREATE TABLE dbo.MyEmployees | |
( | |
EmployeeID smallint NOT NULL, | |
FirstName nvarchar(30) NOT NULL, | |
LastName nvarchar(40) NOT NULL, | |
Title nvarchar(50) NOT NULL, | |
DeptID smallint NOT NULL, | |
ManagerID int NULL, | |
CONSTRAINT PK_EmployeeID PRIMARY KEY CLUSTERED (EmployeeID ASC) | |
); | |
-- Populate the table with values. | |
INSERT INTO dbo.MyEmployees VALUES | |
(1, N'Ken', N'Sánchez', N'Chief Executive Officer',16,NULL) | |
,(273, N'Brian', N'Welcker', N'Vice President of Sales',3,1) | |
,(274, N'Stephen', N'Jiang', N'North American Sales Manager',3,273) | |
,(275, N'Michael', N'Blythe', N'Sales Representative',3,274) | |
,(276, N'Linda', N'Mitchell', N'Sales Representative',3,274) | |
,(285, N'Syed', N'Abbas', N'Pacific Sales Manager',3,273) | |
,(286, N'Lynn', N'Tsoflias', N'Sales Representative',3,285) | |
,(16, N'David',N'Bradley', N'Marketing Manager', 4, 273) | |
,(23, N'Mary', N'Gibson', N'Marketing Specialist', 4, 16); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment