gpt4 book ai didi

.net - 在 SQL 或 LINQ 查询中对链表结构进行排序?

转载 作者:行者123 更新时间:2023-12-04 17:58:07 26 4
gpt4 key购买 nike

我有一个基本上如下所示的数据库:

id uniqueidentifier NOT NULL
data nvarchar
nextid uniqueidentifier NULL

这是一个链表,因为每个 nextid 都链接到该表中的一个 id,除了最后一个,这里的 nextid 为 NULL。我知道第一个节点的 ID。

给定开始 ID,我想以正确的顺序选择它们。

有没有办法在 T-SQL(编辑:SQL 2008)或 LINQ 中完成?

我知道我可以编写代码在 C# 中手动完成,只是想知道我是否已经可以按该顺序查询?

最佳答案

不确定 [SortOrder] 有什么不同,因为我没有足够的数据来测试它。它允许您在两个方向上进行排序。

with cteList as
(
select id, data, nextid, 1 as [SortOrder]
from #TableTemp
where id = 'E8ADAA52-54F8-4FE3-BE59-9852E52B33F5' --id of the 1st item

union all

select #TableTemp.id, #TableTemp.data, #TableTemp.nextid, (cteList.[SortOrder] + 1) as [SortOrder]
from #TableTemp
join cteList on #TableTemp.id = cteList.nextid
)
select * from cteList
order by [SortOrder] asc

关于.net - 在 SQL 或 LINQ 查询中对链表结构进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4371423/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com