![]() |
1
2
您可以使用tablefunc模块中的connectby函数。 首先,您需要启用模块
然后可以使用connectby函数(根据问题中提供的示例表,它将如下所示):
这将返回: 一 二 三 以下是文档中参数的解释:
有关更多信息,请参阅文档。 https://www.postgresql.org/docs/9.5/static/tablefunc.html |
![]() |
2
6
这个词
这就是为什么查询会创建一个无止境的循环。您可以通过更改别名来更正此问题:
或者更好的办法,就是用柱子,就像上帝所期望的那样:
问题中的第一个查询是您在纯SQL中所能做的全部工作,因为递归查询生成的不同(paralel)分支之间没有通信。在函数方法中,可以将临时表用作所有分支的公共存储。函数可能如下所示:
用途:
|
![]() |
3
2
我知道这不是一个很古老的问题,但我有点惊讶没有人建议移除
将问题中的示例数据与此查询一起使用(从原始数据重新格式化了一点):
我明白了
此外,此解决方案还可以防止依赖关系中出现循环时出现无休止的循环。然而,它没有检测到它,因为它没有也不能显示出有一个循环,它只是阻止了一个无休止的循环。 |
|
4
0
您可以从此处查找重复值
|
|
Johnny T · 基于当前值的SQL合并表[重复] 3 月前 |
![]() |
Peter Schofield · 类型转换Postgresql 4 月前 |
![]() |
Kevin Smeeks · Pyspark JDBC分区读取 4 月前 |
![]() |
Andrus · 如何在sql中查找第二个匹配项 4 月前 |