SQL 查询:从表中获取有序行
以下是表格中的一些条目:
id r_id a_id p_id1 9 9 0 2 9 105 108 3 9 102 9 4 9 106 105 5 9 108 102
是否可以使用 SQL 查询获得以下输出
1 9 9 0 3 9 102 9 5 9 108 102 2 9 105 108 4 9 106 105
这个想法是对行进行排序,使得 p_id = x 的行应位于 a_id = x 的行下方。
我希望问题有意义。
问候,
玛雅克
编辑:
我正在寻找 PostgreSql
- 根项目有一个 p_id = 0
- 没有丢失的链接
Following are some entries from a table:
id r_id a_id p_id
1 9 9 0
2 9 105 108
3 9 102 9
4 9 106 105
5 9 108 102
Is it possible to get the following output using SQL query
1 9 9 0
3 9 102 9
5 9 108 102
2 9 105 108
4 9 106 105
The idea is to sort the rows in such a way that a row with p_id = x should come below the row with a_id = x.
I hope question makes sense.
Regards,
Mayank
EDIT:
I'm looking this for PostgreSql
- The root item has a p_id = 0
- There are no missing links
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用递归查询(PostgreSQL 8.4 或更高版本):
Use a recursive query (PostgreSQL version 8.4 or later):
以下内容改编自有效的 SQL Server 2005 解决方案。
我做了一些假设
p_id = 0
SQL 语句
Following is adapted from a working SQL Server 2005 solution.
I have made some assumptions
p_id = 0
SQL Statement