0

我想使用 subltree 和列名在某个级别之后获取 Postgres ltree 层次结构。当我提供确切的输入但无法使用列名时,我能够获取。

这工作正常:

select *
from audit.EMPLOYEE_TOTALS_BY_DAY_WITHOUT_FP_MV_V4
where ecd_path ~ '10130882.11000114.10152749.10148495.10125148.*{1,}'
  and customer_id = 2955
limit 10; 

但这不是。请用正确的查询纠正我

select *
from audit.EMPLOYEE_TOTALS_BY_DAY_WITHOUT_FP_MV_V4
where ecd_path ~ subltree(ecd_path, 0, nlevel(ecd_path)-1)'.*{1,}'
  and customer_id = 2955
limit 10;
;

我对 Postgres Ltree 很陌生。如果这里有任何问题,请纠正我

4

1 回答 1

0

如果您的目标是返回路径深度超过 5 个标签的所有内容,那么这似乎可以通过执行以下操作来完成:

    select *
    from audit.EMPLOYEE_TOTALS_BY_DAY_WITHOUT_FP_MV_V4
    where nlevel(ecd_path) > 5
    and customer_id = 2955
    limit 10;
于 2020-09-02T12:56:43.023 回答