我有一个包含Hierarcyid数据类型的SQL服务器表. node 用‘/’表示为顶层 node ,‘/1/’、‘1/2/’、‘/1/2/3/’...等作为后代 node .

我正在寻找一种方法来显示这些数据,这样你就可以看到缩进的水平.

标签是可以的,树形 struct 会更好.谢谢!

我做了一些实验,将‘Level’转换为包含许多空格的字符串,并将其打印出来.这总比什么都没有好,但如果有更好的方法,无论是使用SSMS、存储过程还是使用Python,那都是非常好的.

最终希望能够添加、删除和移动 node .目前,一些快速而肮脏的东西会奏效,只是想向客户展示它是什么样子的.

谢谢!

推荐答案

这是一个小的工作样本

Example

Declare @YourTable table (ID int,Pt Int,Label varchar(50),HierID hierarchyid)
Insert Into @YourTable values
 (1,null,'Top','/1/')
,(2,1,'Some Item A','/1/2/')
,(3,1,'Some Item B','/1/3/')
,(4,3,'Some Item C','/1/3/4/')
,(5,1,'Some Item D','/1/5/')
,(6,3,'Some Item E','/1/3/6/')

Select Lvl   = HierID.GetLevel()
      ,ID
      ,PT
      ,Label  = replicate('|----',HierID.GetLevel()-1) + Label  -- Nesting Optional ... For Presentation
      ,HierID_String = HierID.ToString()
 From @YourTable A
 Order By A.HierID

Results

enter image description here

Python相关问答推荐

Python中两个矩阵的自定义Hadamard风格产物

Python如何让代码在一个程序中工作而不在其他程序中工作

"如果发生特定错误,返回值

使用matplotlib pcolormesh,如何停止从一行绘制的磁贴连接到上下行?

ambda将时间戳与组内另一列的所有时间戳进行比较

在for循环中仅执行一次此操作

如何根据条件在多指标框架上进行groupby

在Python中处理大量CSV文件中的数据

如何从具有不同len的列表字典中创建摘要表?

删除所有列值,但判断是否存在任何二元组

优化pytorch函数以消除for循环

如何使用数组的最小条目拆分数组

在Python argparse包中添加formatter_class MetavarTypeHelpFormatter时, - help不再工作""""

python中字符串的条件替换

Django RawSQL注释字段

如何指定列数据类型

如何在TensorFlow中分类多个类

旋转多边形而不改变内部空间关系

在Docker容器(Alpine)上运行的Python应用程序中读取. accdb数据库

使用SeleniumBase保存和加载Cookie时出现问题