I have implemented a linked list as a self-referencing database table:
CREATE TABLE LinkedList(
Id bigint NOT NULL,
ParentId bigint NULL,
SomeData nvarchar(50) NOT NULL)
where Id is the primary key, and ParentId is the Id of the previous node on the list. The first node has ParentId = NULL.
I now want to SELECT from the table, sorting the rows in the same order they should appear, as nodes on the list.
Eg.: if the table contains the rows
Id ParentId SomeData
24971 NULL 0
38324 24971 1
60088 60089 3
60089 38324 2
61039 61497 5
61497 60088 4
109397 109831 7
109831 61039 6
Then sorting it, using the criteria, should result in:
Id ParentId SomeData
24971 NULL 0
38324 24971 1
60089 38324 2
60088 60089 3
61497 60088 4
61039 61497 5
109831 61039 6
109397 109831 7
You're supposed to use the SomeData colum as a control, so please don't cheat doing ORDER by SomeData :-)
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…