用sql语句把传统存储树的表,转换成节点与叶子节点对照表(oracle)
出于某种原因(懒),想在sql中实现数据按照树形结构进行分组合计,在关联表的时候需要一个节点与对应叶子节点对照的表。所以不知道下面这个操作用sql语句能实现不,不想要函数或者存储过程这种的,那样的话我就在代码里写了。
希望将
id pid
1 0
2 1
3 1
4 2
5 2
6 3
7 3
转换为
id lid
1 4
1 5
1 6
1 7
2 4
2 5
3 6
3 7
4 4
5 5
6 6
7 7
另外树的表结构中还有是否是叶子节点和层级这两个字段,如果有需要的字段也可以自己加
另外本问题源于个人的求知与探索欲望,不要喷我“sql不是啥都能干的”这种
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这种需求可用SQL的recursive with实现:
以上在 MSSQL2014 运行通过。