sql中的拓扑排序
我正在解决表中某些对象之间的依赖关系。 我必须对对象做一些事情来排序它们的依赖性。 例如,第一个对象不依赖于任何对象。第二个和第三个取决于第一个,依此类推。我必须使用拓扑排序。 有人可以展示在 t-sql 中进行排序的实现示例吗? 我有一张表:
create table dependency
(
DependencyId PK
,ObjectId
,ObjectName
,DependsOnObjectId
)
我想获取
ObjectId 对象名 排序顺序
I am resolving dependency between some objects in a table.
I have to do something with objects in order their dependency.
For example, the first object doesn't depend on any object. The second and third ones depends on first one and so on. I have to use topological sorting.
Could someone show the sample of implementation so sorting in t-sql.
I have a table:
create table dependency
(
DependencyId PK
,ObjectId
,ObjectName
,DependsOnObjectId
)
I want to get
ObjectId
ObjectName
SortOrder
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
它接缝,它有效:
It seams, it works:
您有一个简单的树结构,每个
ObjectId
只有一条路径,因此基于遍历的DependsOnObjectId
链接数量的标签仅给出一个答案,并且是一个足够好的答案来处理正确的内容第一的。使用公用表表达式很容易做到这一点,并且具有易于移植的优点:You have a simple tree structure with only one path to each
ObjectId
so labeling based off number ofDependsOnObjectId
links traversed gives only one answer and a good enough answer to process the right stuff first. This is easy to do with a common table expression and has the benefit of easy portability: