Jag har en tabell som består av sidor med id, name och parent. Den refererar alltså sig själv när det kommer till undersidor. Jag skulle vilja få en sorterad lista som listar sidorna i ordningen:
id namn pId
1 sida1 0
2 usida1 1
3 sida2 0
Den hämtar alltså först en parent sida och sedan dess barn och sedan nästa parent-sida osv.
Det är SQL 2005 som jag jobbar i. Har kollat lite på det här med with men får inte till det.
Så här långt har jag kommit:
WITH mSiteMap (Parent, Id, Title, Level)
AS
(
SELECT e.Parent, e.Id, e.Title, 0 AS Level
FROM SiteMap AS e
WHERE Parent = 0
UNION ALL
SELECT e.Parent, e.Id, e.Title, Level + 1
FROM SiteMap AS e
INNER JOIN mSiteMap AS s
ON e.Parent = s.Id
)
SELECT Parent, Id, Title, Level
FROM mSiteMap
Men den ordnar det bara i nivåerna, alltså först kommer nivå 0 sen 1, sen två
inte 0, 1, 1.1, 1.2, 2, 2.1 osv
124 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe