gpt4 book ai didi

sql-server-2005 - SQL Server 2005 中无游标循环

转载 作者:行者123 更新时间:2023-12-01 13:59:36 25 4
gpt4 key购买 nike

我有一个这样的表 OrganisationStructure:

OrganisationID INT
ParentOrganisationID INT
OrganisationName VARCHAR(64)

1 | 0 | Company
2 | 1 | IT DIVISION
3 | 2 | IT SYSTEM BUSINESS UNIT
4 | 1 | MARKETING DIVISION
5 | 4 | DONATION BUSINESS UNIT

我想查询如果应用程序通过 OrganisatinID = 1 意味着它将循环(查看父/子)直到该表的末尾并获取所有可能的返回 OrganisatioIDs = (1, 2, 3, 4, 5).

其他如果传递 OrganisationID = 2 然后返回 OrganisationID = (2, 3)

其他如果传递 OrganisationID = 3 然后返回 OrganisationID = 3

在没有光标的情况下有什么想法吗?

谢谢

最佳答案

您可以使用 SQL 2005 CTE 使 SQL 引擎递归执行此操作。

基本方法的列举在 http://blogs.msdn.com/anthonybloesch/archive/2006/02/15/Hierarchies-in-SQL-Server-2005.aspx

Celko 也有一本关于 SQL 树的书,它涵盖了所有这些到第 n 个程度。

或者您可以通过将每个级别选择到本地表变量中然后循环,通过选择插入子项,直到您的@@ROWCOUNT 为零(即,您找不到更多的子项)来强制执行它。如果您没有大量数据,这很容易编写代码,但您通过说您不想要游标来暗示您正在寻找性能。

关于sql-server-2005 - SQL Server 2005 中无游标循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/914417/

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