我还没有找到一种方法来格式化它,让它做我想做的事。
有问题的表有一个“路径”字段,可能包含:
aaa.bbb.ccc.ddd
以及一个“名称”字段,对于上面的示例,它将包含
ddd
所以它只是路径中的最终名称。
如果我有一个名称列表(如果这需要工作,当然可以将其子查询到路径中)我怎么能运行一个查询来返回(dsitinct)我提供的每个名称的条目?
为了澄清让我们说我正在提供:
('SN80001', 'IPX0012')
这些名称的路径可能是:
CEL0001.AND0001.SAM0001.SN80001
CEL0001.IOS0001.APP0001.IPX0012
我想要的结果是每个祖先名称的定义(理想情况下包括我给它的开头):
CEL0001
AND0001
IOS0001
SAM0001
APP0001
SN80001
IPX0012
我以为我开始使用以下方法到达某个地方:
WHERE path @> ('CEL0001.AND0001.SAM0001.SN80001'::ltree || 'CEL0001.IOS0001.APP0001.IPX0012'::ltree)
但是,这仅返回连接 ltree 查询中第一个匹配项的结果。