Skip to content

Instantly share code, notes, and snippets.

@wattengard
Created April 28, 2014 08:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wattengard/11365802 to your computer and use it in GitHub Desktop.
Save wattengard/11365802 to your computer and use it in GitHub Desktop.
ALTER FUNCTION [dbo].[OrgTre] (@orgid INT)
RETURNS @returnTable TABLE (
orgid INT
,eier INT
,nivaa INT
,tekst NVARCHAR(500)
)
AS
BEGIN
INSERT INTO @returnTable
SELECT orgid
,0
,0
,tekst
FROM tblOrg
WHERE OrgID = @orgid;
WITH Tre
AS (
SELECT OrgID
,Tekst
,1 AS Nivaa
,Eier
,CAST((tekst) AS NVARCHAR(max)) AS [Path]
FROM tblOrg
WHERE Eier = @orgid
UNION ALL
--Recursive member
SELECT t.OrgID
,t.Tekst
,Nivaa + 1 AS Nivaa
,t.Eier
,CAST((a.path + '/' + t.tekst) AS NVARCHAR(max)) AS [Path]
FROM tblOrg t
JOIN Tre AS a ON t.Eier = a.OrgID
)
INSERT INTO @returnTable
SELECT tre.OrgID
,tre.Eier
,tre.Nivaa
,tre.Tekst
FROM Tre
RETURN
END
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment