Как получить рекурсивный уровень с помощью иерархии SQL Server 2012?

Я знаю, что это довольно сложно, есть ли какой-либо специалист по sql, пожалуйста, любезно помогите мне решить эту проблему. У меня есть NameHID hierarchyID как NameHID ниже в столбце NameHID . Его представление /NameID/dadID/MomID/ соответственно. Это означает, что ученик-отец и мать. Имя моей таблицы – это студенты.

это мой пример столбца NAMEHID

 /2/8/5/ /5/11/12/ /8/7/9/ 

Мне нужен вывод, как

 NameID | RecursiveLevel 2 0 5 1 7 2 8 1 9 2 11 2 12 2 

На этом Pic вы можете увидеть, что такое RecursiveLevel. Это дерево представляет собой нечто вроде предков определенного узла.

введите описание изображения здесь
Мне нужно показать только имяID и рекурсивный уровень как out put. если есть какая-либо другая дополнительная информация?

Ваши данные неверны иерачы. Вы могли бы выполнить свою работу, используя функцию split и recursive cte

 DECLARE @SampleData TABLE ( NAMEHID varchar(30) ) INSERT INTO @SampleData ( NAMEHID ) VALUES ('/2/8/5/'),('/5/11/12/'),('/8/7/9/') ;with temp AS ( SELECT * FROM @SampleData sd CROSS APPLY ( SELECT * FROM [dbo].[SplitString](STUFF(LEFT(sd.NameHID,LEN(sd.NameHID) - 1),1,1,''),'/') ) cr ) ,cte AS ( SELECT t.NameHID, t.[Value] , 0 AS Lvl FROM temp t WHERE t.Pos = 1 AND NOT EXISTS ( SELECT * FROM temp t2 WHERE t2.[Value] = t.[Value] AND t2.Pos > 1 ) -- root ID UNION ALL SELECT t2.NameHID, t2.[Value], cte.Lvl + 1 FROM cte INNER JOIN temp t ON cte.[Value] = t.[Value] AND t.Pos = 1 INNER JOIN temp t2 ON t.NameHID = t2.NameHID AND t2.Pos > 1 ) SELECT cte.[Value] AS NameId, cte.Lvl FROM cte ORDER BY cte.Lvl, cte.[Value] OPTION(MAXRECURSION 0) 

Функция разделения

 CREATE FUNCTION [dbo].[SplitString] (@Text varchar(max),@Delimiter varchar(10)) Returns Table As Return ( Select Pos = Row_Number() over (Order By (Select null)) ,Value = LTrim(RTrim(Bivalue('(./text())[1]', 'varchar(max)'))) From (Select x = Cast('<x>'+ Replace(@Text,@Delimiter,'</x><x>')+'</x>' as xml).query('.')) as A Cross Apply x.nodes('x') AS B(i) ); 

Демо-ссылка: http://rextester.com/KPX84657