当前位置: 首页 > 面试题库 >

SQL很好地检索树结构

蒋畅
2023-03-14
问题内容

给定简单的数据结构:

ID    |    Category_Name    |    Parent_ID

例子:

1          Cars                    0
2          Boxes                   0
3          Lamborghinis            1
4          VW Camper Vans          1
5          Big Boxes               2
6          Small Boxes             2
7          Cereal Boxes            2
8          Broken Lambos           3
9          Yellow Ones             3
10         Rusty                   8
11         Milkshake Stained       8
12         Chocolate Flavour       11
13         Strawberry              11
14         Indiscernible Solution  11

代表一种简单的树导航结构,以编程方式是检索可显示格式的树的最佳方法是什么?我们可以创建一条SQL语句来“按顺序”检索它们吗?

谢谢你的帮助!如果我的方法有误,请随时发表评论。

我正在使用SQL Server 2000。


问题答案:

如果您使用的是SQL Server
2008,则可能要尝试使用新的architectureid数据类型。

如果您不是,那么另一种方法是查看适用于所有数据库的嵌套集模型。

如果您使用的是SQL Server 2005及更高版本,则可以使用递归CTE检索树结构。



 类似资料:
  • 问题内容: 像Go这样的类型,并且不能存储null值,因此我发现可以为此使用sql.NullInt64和sql.NullString。 但是,当我在Struct中使用它们,并使用json包从Struct生成JSON时,格式与使用常规和类型时不同。 JSON具有附加级别,因为sql.Null ***也是Struct。 有没有很好的解决方法,还是应该在我的SQL数据库中不使用NULL? 问题答案: 像

  • 对于我用私有字段实现的二叉树对象 我有一个方法,它需要返回一个树,包括具有的节点和具有的节点之间的所有键及其相应值。这个方法也需要使用递归来执行。 我遇到的问题是,我无法找到一种方法来获得一个以结尾的树(可能看起来像一个LinkedList),而不包括和。我想我应该首先在根的左树或右树上递归调用方法,这取决于startKey是大于还是小于根键,所以: 这将一直在树中导航,直到到达包含键的节点。当我

  • 我正在用python开发一个二叉查找树。但是我的检索方法并不像我希望的那样工作。只有当我想检索根节点时,它才返回正确的值,对于所有其他节点,它都不返回任何值。 下面是我的节点类的代码: 我的二叉树代码: 所以Bintree中的最后一个方法为除Root之外的所有值返回Not,但它应该返回节点的值。 填充树:

  • 问题内容: 我想将浮点数表示为四舍五入到一定位数的字符串,并且从不使用指数格式。本质上,我想显示任何浮点数并确保它“看起来不错”。 这个问题有几个部分: 我需要能够指定有效位数。 有效位数必须是可变的,而字符串格式化运算符不能做到这一点。[编辑]我已经改正了;字符串格式化操作符可以做到这一点。 我需要将其四舍五入到一个人期望的方式,而不是像1.999999999999 我想出了一种方法来完成此任务

  • 问题内容: 我浏览了一些帖子,并且阅读了多个JPA不支持接口的地方。有人可以分享真实项目中的含义吗?这是否意味着我们无法为接口添加注释? 问题答案: 这意味着您不能在接口上进行映射(注释)或查询。您只能查询@Entity类,并且只能将它们放在真实类中,而不能放在接口上。通常这不是问题,接口没有状态,因此在大多数情况下与持久性没有真正关系。您仍然可以在模型中使用接口,只是不能直接映射它们。 如果您有

  • 问题内容: 像这样对表格进行排序的最佳方法是什么: 要通过分级排序,它 的ID 或 名字 : “比萨饼” //节点1 “piperoni” //节点1.1 “奶酪” //节点1.2 “额外的奶酪” //节点1.2.1 “vegetariana” //节点1.3 “汉堡” //节点2 ‘咖啡’//节点3 编辑: 名称 末尾的数字是为了更好地可视化strucutre,而不是用于排序。 编辑2: 正如多