ranganath
Posting Yak Master
209 Posts |
Posted - 2008-03-07 : 04:06:25
|
Hi,Try with this it will work in Sql2005 DECLARE @Sample TABLE (ID INT, ParentID INT, Name VARCHAR(1000))INSERT @SampleSELECT 7, NULL, 'Ljunggren' UNION ALLSELECT 3, 1, 'Gulli' UNION ALLSELECT 8, 7, 'Kerstin' UNION ALLSELECT 1, NULL, 'Rosberg' UNION ALLSELECT 4, 2, 'Peter' UNION ALLSELECT 5, 3, 'Susanne' UNION ALLSELECT 2, 1, 'Jan-Eric' UNION ALLSELECT 10, 9, 'Jennie' UNION ALLSELECT 6, 3, 'Annelie' UNION ALLSELECT 9, 7, 'Kenneth' UNION ALLSELECT 11, 9, 'Jessica';WITH Yak (ID, ParentID, Name, Path, Indent)AS ( SELECT ID, ParentID,Name, CONVERT(VARCHAR, ROW_NUMBER() OVER (ORDER BY Name)), 0 FROM @Sample WHERE ParentID IS NULL UNION ALL SELECT s.ID,s.ParentID,s.Name, CONVERT(VARCHAR, y.Path + ',' + CONVERT(VARCHAR, ROW_NUMBER() OVER (ORDER BY s.Name DESC))), y.Indent + 1 FROM @Sample AS s INNER JOIN Yak AS y ON y.ID = s.ParentID)SELECT y.ID, y.ParentID, REPLICATE('.....', Indent) + Name, y.PathFROM Yak y--WHERE y.parentid = 7 (@parentId) ORDER BY y.Path |
|
|