在SQL数据库中查询Smart3D中pipeline的层级关系

在之前的文章《S3D的SQL函数之REPORTGetHierarchyPathByChildOid》中,我们可以返回对象所在目录systempath的详细信息。
基于该函数,我们还可以进行一下拓展。
如下图:

从图中可以看出,system path的写法为””间隔。因此,我们可以尝试对该字符串进行split处理。
  • 下面首先需要新增split函数

摘自:

https://www.cnblogs.com/hantianwei/archive/2010/07/05/1771571.html

有了该函数之后,我们就可以对查询得到的字符串结果进行split处理。 

  • 下面我们基于上面的结果已经新建的split函数,完成创建视图

“select 

dbo.splitstring(dbo.REPORTGetHierarchyPathByChildOid(pipeline.Oid, ‘SystemHierarchy’) ,”,1) as path1, 

dbo.splitstring(dbo.REPORTGetHierarchyPathByChildOid(pipeline.Oid, ‘SystemHierarchy’) ,”,2) as path2,

dbo.splitstring(dbo.REPORTGetHierarchyPathByChildOid(pipeline.Oid, ‘SystemHierarchy’) ,”,3) as path3,

dbo.splitstring(dbo.REPORTGetHierarchyPathByChildOid(pipeline.Oid, ‘SystemHierarchy’) ,”,4) as path4,

dbo.splitstring(dbo.REPORTGetHierarchyPathByChildOid(pipeline.Oid, ‘SystemHierarchy’) ,”,5) as path5,

dbo.splitstring(dbo.REPORTGetHierarchyPathByChildOid(pipeline.Oid, ‘SystemHierarchy’) ,”,6) as path6,

dbo.splitstring(dbo.REPORTGetHierarchyPathByChildOid(pipeline.Oid, ‘SystemHierarchy’) ,”,7) as path7,

dbo.splitstring(dbo.REPORTGetHierarchyPathByChildOid(pipeline.Oid, ‘SystemHierarchy’) ,”,7) as path8

,n1.ItemName as ‘LineName’, pipeline.Oid as ‘LineOid’

from JPipelineSystem pipeline

join JNamedItem n1 on n1.Oid = pipeline.Oid

  • 保存视图后,新建查询

select * from ACV_PipelineSystemPath

基于如上方法,还可以对其他对象进行相关的查询操作。比如设备,电缆桥架托盘。

相关阅读

S3D的SQL函数之REPORTGetHierarchyPathByChildOid

SQL查询component的各port信息

SQL Query to Return System Parent at Any Depth

数字化工程设计公众号二维码
原文链接:查看原文  文章来源:数字化工程设计
🔗 分享 0

上5篇 more...

下5篇 more...