关于SQL递归查询在不同数据库中的实现方法
2017-07-06 09:15
211 查看
比如表结构数据如下:
Table:Tree
ID Name ParentId
1 一级 0
2 二级 1
3 三级 2
4 四级 3
SQL SERVER 2005查询方法:
?
SQL SERVER 2008及以后版本,还可用如下方法:
增加一列TID,类型设为:hierarchyid(这个是CLR类型,表示层级),且取消ParentId字段,变成如下:(表名为:Tree2)
TId Id Name
0x 1 一级
0x58 2 二级
0x5B40 3 三级
0x5B5E 4 四级
查询方法:
?
可参见相关文章:http://blog.csdn.net/szstephenzhou/article/details/8277667
ORACLE中的查询方法:
?
可参见相关文章:http://blog.csdn.net/super_marioli/article/details/6253639
MYSQL 中的查询方法:
?
补充说明:上面这个方法在下查是没有问题,但在上查时会出现问题(详见博问:http://q.cnblogs.com/q/76375/),原因在于我的逻辑写错了,存在死循环,现已修正,新的方法如下:
?
这样递归查询就很方便了。
可参见相关文章:http://blog.csdn.net/jackiehome/article/details/6803978
说明:以上知识点均来源于网上,我这里只是做一个合计总结。
Table:Tree
ID Name ParentId
1 一级 0
2 二级 1
3 三级 2
4 四级 3
SQL SERVER 2005查询方法:
?
增加一列TID,类型设为:hierarchyid(这个是CLR类型,表示层级),且取消ParentId字段,变成如下:(表名为:Tree2)
TId Id Name
0x 1 一级
0x58 2 二级
0x5B40 3 三级
0x5B5E 4 四级
查询方法:
?
ORACLE中的查询方法:
?
MYSQL 中的查询方法:
?
?
可参见相关文章:http://blog.csdn.net/jackiehome/article/details/6803978
说明:以上知识点均来源于网上,我这里只是做一个合计总结。
相关文章推荐
- 关于SQL递归查询在不同数据库中的实现方法
- 关于SQL递归查询在不同数据库中的实现方法
- 有关数据库SQL递归查询在不同数据库中的实现方法
- 有关数据库SQL递归查询在不同数据库中的实现方法
- 主流数据库之间对SQL:2003标准的不同实现方法比较(第三部分 前n项(Top-n)查询)
- 主流数据库之间对SQL:2003标准的不同实现方法比较(第六部分 基础数据类型之BOOLEAN)
- 关于vector的erase删除操作的两种不同方法,在linux与visual studio的实现讨论
- 主流数据库之间对SQL:2003标准的不同实现方法比较(第四部分 查询结果集中间n行数据)
- 主流数据库之间对SQL:2003标准的不同实现方法比较(第一部分 视图View与连接Join)
- 关于局域网内不同电脑之间数据库访问的实现以及推广
- 在Hibernate里面动态切换SChema实现访问不同的数据库的几种方法
- 关于web单表单不同提交的实现方法
- 关于将类对象数据存入到数据库中的实现方法
- 主流数据库之间对SQL:2003标准的不同实现方法比较(第二部分 结果集排序)
- 在Hibernate里面动态切换SChema实现访问不同的数据库的几种方法
- 关于dorado框架datatable处的右键菜单无法根据具体数据实现动态分别显示不同菜单的解决方法
- 关于开发场和用户场数据库结构不同的处理方法
- JDBC上关于数据库中多表操作一对多关系和多对多关系的实现方法
- JDBC上关于数据库中多表操作一对多关系和多对多关系的实现方法
- JDBC上关于数据库中多表操作一对多关系和多对多关系的实现方法