It is possible to use a recursive CTE :
declare @URLTable table (
Slug varchar(50),
Parent varchar(50)
)
insert into @URLTable
(Slug, Parent)
values
('Home', null),
('About', null),
('Our-Company', 'About'),
('Our-History', 'Our-Company')
;with cteURLs as (
select Slug, cast('/' + Slug as varchar(1000)) as URL
from @URLTable
where Parent is null
union all
select u.Slug, cast(c.URL + '/' + u.Slug as varchar(1000)) as URL
from @URLTable u
inner join cteURLs c
on u.Parent = c.Slug
)
select URL from cteURLs
Conclusion:
URL
/Home
/About
/About/Our-Company
/About/Our-Company/Our-History
source
share