树结构的父母

时间:2019-04-26 22:15:13

标签: sql sql-server tree

我正在尝试检索我想要特定级别的“亲本性”的树结构。我的表具有深度,pathIndex和映射级别。我的第一种方法是制作一些子字符串,以便能够通过映射查找值,但是在字符串转换时遇到了多个错误。可能的一件事是,如果我尝试查询的商品不在最低级别,则对于缺少的商品应该返回null。

在表格中,如果我在星号处查询行

Id                                     depth    pathindex   ItemNumber
4CF91F7F-832E-468D-B44A-E14DC66E710A     0          0        0.0
D34784A3-2134-4D09-828E-0EDA0C275C43     1          1        1
38158804-3EBC-4841-B1AF-1B86AD153010     2          1        1.1
8E25D494-322F-45F9-8A91-2A385F561C71     3          1        1.1.1
**64EB6C43-FF9C-0FF9-133F-01F4F21DA14F**     4          1        1.1.1.1
13AFA35C-80F8-405A-8980-33C3F7733EE2     2          2        1.2
3F1332E9-4D42-4BD8-9423-598430E94CB5     3          1        1.2.1
B3CC1306-A122-46F6-8F67-30FBABA3B590     4          1        1.2.1.1
C3F27C8E-F96B-4498-A85F-E4FC8EA90ED7     4          2        1.2.1.2

这就是它应该如何查找信息,静态字符串是我不知道如何生成的,以便在请求不那么深的级别时获取空值。

Select top 1 VehicleGroupId as Region 
      from GroupHierarchy where GroupHierarchy.numericalmapping = '1' 
Select top 1 VehicleGroupId as gz 
      from GroupHierarchy where GroupHierarchy.numericalmapping = '1.1' 
Select top 1 VehicleGroupId as cedis 
      from GroupHierarchy where GroupHierarchy.numericalmapping = '1.1.1'

1 个答案:

答案 0 :(得分:0)

您可以使用Microsoft SQL hiearchy数据类型和函数轻松地连接和保留结构,而不必在层次结构成员之间放置小数,而使用正斜杠(1/2/3)。 https://www.sqlshack.com/use-hierarchyid-sql-server/