Nice way to select all the child elements in SQL
The task is to select all the records where parent equal ‘1’ and parent of parent equal ‘1’ etc. Our datatable is:
|
EntityId |
Name |
ParentId |
|
1 |
Dep1 |
0 |
|
2 |
Dep2 |
1 |
|
3 |
Dep3 |
1 |
|
4 |
Dep4 |
1 |
|
5 |
Dep5 |
2 |
Let’s create a temporary table
DECLARE @tbl TABLE ( EntityId int, Name nvarchar(255), ParentId int )
And insert records to it as shown above
INSERT into @tbl (EntityId, Name, ParentId) SELECT 1, 'Dep1', 0 INSERT into @tbl (EntityId, Name, ParentId) SELECT 2, 'Dep2', 1 INSERT into @tbl (EntityId, Name, ParentId) SELECT 3, 'Dep3', 1 INSERT into @tbl (EntityId, Name, ParentId) SELECT 4, 'Dep4', 1 INSERT into @tbl (EntityId, Name, ParentId) SELECT 5, 'Dep5', 2
Now let’s write an SQL-expression
DECLARE @ID Int
SELECT @ID = 1
;WITH results AS(
SELECT *
FROM @tbl
WHERE ParentId = @ID
UNION ALL
SELECT t.*
FROM @tbl t INNER JOIN
ret r ON t.ParentId = r.EntityId
)
SELECT *
FROM results
The result is:
|
EntityId |
Name |
ParentId |
|
2 |
Dep2 |
1 |
|
3 |
Dep3 |
1 |
|
4 |
Dep4 |
1 |
|
5 |
Dep5 |
2 |

Login as another user in SharePoint 2019 on-premises site in Chrome
Set limited Wi-Fi connection within command line in Windows
A sticker problem with the fan in HP laptop