我正在尝试检索我想要特定级别的“亲本性”的树结构。我的表具有深度,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'
答案 0 :(得分:0)
您可以使用Microsoft SQL hiearchy数据类型和函数轻松地连接和保留结构,而不必在层次结构成员之间放置小数,而使用正斜杠(1/2/3)。 https://www.sqlshack.com/use-hierarchyid-sql-server/