【发布时间】:2019-05-02 08:44:52
【问题描述】:
我在 SQL Server 上运行成功。我的系统在 SQL Server 和 postgresql 上运行。
但是当我从 SQL Server 更改为 postgresql 时,它运行失败。
我的sql是这样的:
with name_tree as
(
SELECT DepartNo, ParentNo FROM Departments
WHERE DepartNo IN (
SELECT DepartNo FROM BelongToDepartment
WHERE UserNo = 1)
union all
select C.DepartNo, C.ParentNo
from Departments c
join name_tree p on C.DepartNo = P.ParentNo
AND C.DepartNo<>C.ParentNo
)
select * from name_tree
错误是:
name_tree 不存在
如何在postgresql中获取一个孩子的所有父母
更多细节在 MSQ 服务器here
【问题讨论】:
-
SQL 标准要求
RECURSIVE关键字用于递归公用表表达式,Postgres 遵循该标准。所以你需要使用with recursive ...as documented in the manual
标签: sql postgresql common-table-expression recursive-query