$0CREATE TABLE A ( ID int, Name varchar(12), ParentID int)$0
$0-- drop table A$0
$0-- Delete from A$0
$0select * From A$0
$0$0
$0
$0Insert into A (ID,Name,ParentID) values(1,'Greg',0)$0
$0Insert into A (ID,Name,ParentID) values(2,'Bill',0)$0
$0Insert into A (ID,Name,ParentID) values(3,'Amy',1)$0
$0Insert into A (ID,Name,ParentID) values(4,'Red',1)$0
$0Insert into A (ID,Name,ParentID) values(5,'Paul',4)$0
$0Insert into A (ID,Name,ParentID) values(6,'Forest',4)$0
$0Insert into A (ID,Name,ParentID) values(7,'Jade',3)$0
$0Insert into A (ID,Name,ParentID) values(8,'Mary',6)$0
$0Insert into A (ID,Name,ParentID) values(9,'Peter',6)$0
$0Insert into A (ID,Name,ParentID) values(10,'Joseph',6)$0
$0Insert into A (ID,Name,ParentID) values(11,'Juan',6)$0
$0Insert into A (ID,Name,ParentID) values(12,'Barbara',2)$0
$0Insert into A (ID,Name,ParentID) values(13,'Sue',2)$0
$0Insert into A (ID,Name,ParentID) values(14,'Steve',13)$0
$0Insert into A (ID,Name,ParentID) values(15,'Norma',14)$0
$0Insert into A (ID,Name,ParentID) values(16,'Monty',14)$0
$0Insert into A (ID,Name,ParentID) values(17,'Quame',14)$0
$0select * From A$0
$0$0
$0
$0WITH DirectReportsOfGreg (ManagerID, EmployeeID, EmployeeName, Level)$0
$0AS$0
$0( $0
$0-- Anchor$0
$0SELECT ParentID,ID, Name, 0 Level FROM A WHERE Name = 'Greg'$0
$0UNION ALL$0
$0-- Recursive Member Definition$0
$0SELECT ParentID,ID, a.Name, Level+1 FROM A $0
$0INNER JOIN DirectReportsOfGreg as b on A.ParentID = b.EmployeeID$0
$0)$0
$0$0
$0
$0-- Statement that executes the CTE$0
$0SELECT * FROM DirectReportsOfGreg $0
$0ORDER BY LEVEL$0
$0select * From A$0