表数据如下:id name fatherid info
-------------------------------------------
001 主轴承 002 --
002 车轮 005 --
003 轮胎 002 --
004 车窗 005 --
005 汽车 0 --
006 玻璃 004 --
要求查询出来的数据如下排序:
id name fatherid info
-------------------------------------------
005 汽车 0 --002 车轮 005 --
001 主轴承 002 --
003 轮胎 002 --004 车窗 005 --
006 玻璃 004 --
-------------------------------------------
001 主轴承 002 --
002 车轮 005 --
003 轮胎 002 --
004 车窗 005 --
005 汽车 0 --
006 玻璃 004 --
要求查询出来的数据如下排序:
id name fatherid info
-------------------------------------------
005 汽车 0 --002 车轮 005 --
001 主轴承 002 --
003 轮胎 002 --004 车窗 005 --
006 玻璃 004 --
解决方案 »
- 学生学员成绩表的查询
- 关于oracle的安装配置?C#操作 oracle库?
- 联合查询问题,急!
- B/S架构怎么在登陆后更换数据库用户
- oracle 10g 如何查看一个表有没有添加约束呢?
- 如何避免开发公司给我们单位的ORACLE下了逻辑炸弹!!!
- 在Linux9下总算把Oracle9i软件给装好了,又出现创建数据库问题(不要小瞧噢)?
- 求救。关于12560错误
- ?求助,ORACLE中在SELECT 语句 使用GROUP BY 分类查询时,提示‘GROUP BY 不是表达式’请问什么原因?
- 哪位高手可否告诉我:Oracle中的回车符是?
- <<<< 如何用dblink创建远程视图 >>>>
- 请问 select to_char(empno,'c99999') from emp;是什么意思,
---------- ---------- ---------- ----------
001 主轴承 002 --
002 车轮 005 --
003 轮胎 002 --
004 车窗 005 --
005 汽车 0 --
006 玻璃 004 --6 rows selectedSQL>
SQL> select id, name, fatherid from ttt
2 connect by prior id = fatherid
3 start with fatherid = '0'
4 /ID NAME FATHERID
---------- ---------- ----------
005 汽车 0
002 车轮 005
001 主轴承 002
003 轮胎 002
004 车窗 005
006 玻璃 0046 rows selected
按照楼主的意思,我觉得SQL 这样写比较好,
SELECT ID,NAME,FATHERID FROM TTT
CONNECT BY FATHERID = PRIOR ID
START WITH FATHERID = '0'
-----------
我觉得这样更符合实际,容易理解,