Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Zdobądź wszystkich rodziców na dziecko

Wypróbuj to, aby zdobyć wszystkich rodziców dziecka

;with name_tree as 
(
   select id, parentid
   from Users
   where id = 47897 -- this is the starting point you want in your recursion
   union all
   select C.id, C.parentid
   from Users c
   join name_tree p on C.id = P.parentid  -- this is the recursion
   -- Since your parent id is not NULL the recursion will happen continously.
   -- For that we apply the condition C.id<>C.parentid 
    AND C.id<>C.parentid 
) 
-- Here you can insert directly to a temp table without CREATE TABLE synthax
select *
INTO #TEMP
from name_tree
OPTION (MAXRECURSION 0)

SELECT * FROM #TEMP

Kliknij tutaj, aby wyświetlić wynik

EDYTUJ:

Jeśli chcesz wstawić do zmiennej tabeli, możesz zrobić coś takiego:

-- Declare table varialbe
Declare @TABLEVAR table (id int ,parentid int)


;with name_tree as 
(
   select id, parentid
   from #Users
   where id = 47897 -- this is the starting point you want in your recursion
   union all
   select C.id, C.parentid
   from #Users c
   join name_tree p on C.id = P.parentid  -- this is the recursion
   -- Since your parent id is not NULL the recursion will happen continously.
   -- For that we apply the condition C.id<>C.parentid 
    AND C.id<>C.parentid 
) 
-- Here you can insert directly to table variable
INSERT INTO @TABLEVAR
select *
from name_tree
OPTION (MAXRECURSION 0)

SELECT * FROM @TABLEVAR

Kliknij tutaj, aby wyświetlić wynik



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server 2016:Ulepszenia grupy dostępności

  2. Błąd 28000:Logowanie nie powiodło się dla użytkownika DOMENA\\użytkownik z pyodbc

  3. Utwórz schemat UDF związany ze schematem w SQL Server

  4. Tablix:Powtarzanie wierszy nagłówka na każdej stronie nie działa — Report Builder 3.0

  5. Jak skopiować dane z ogromnej tabeli do innej tabeli w SQL Server