表如下格式(父与子是多对多的关系)
Parent_Dwg_No Parent_Rev_No Dwg_No Dwg_Rev0029SAA 001 0029GAP 004
0029GAP 004 5247GAK 007
0029GAP 004 5247GAS 005
0029GAP 004 5247GBJ 002
5247GBJ 003 0098GCJ 000
5247GBJ 003 0223GAM 001
5247GBJ 003 0118GBL 000能否通过0223GAM 001找到根0029SAA 001
Parent_Dwg_No Parent_Rev_No Dwg_No Dwg_Rev0029SAA 001 0029GAP 004
0029GAP 004 5247GAK 007
0029GAP 004 5247GAS 005
0029GAP 004 5247GBJ 002
5247GBJ 003 0098GCJ 000
5247GBJ 003 0223GAM 001
5247GBJ 003 0118GBL 000能否通过0223GAM 001找到根0029SAA 001
解决方案 »
- 请问ORACLE 的游标程序,如何把取得的一些条件值放入游标,然后循环传给下面的程序
- oracle中先查询,如果没有记录再插入,如何用事务保证正确性
- sql 条件判断问题
- oracle数据库导入clob数据
- 数据库中如何级联更新?
- 请问下面的为什么不能显示呀
- 在linux下使用的一些问题
- 急求一SQL语句
- 最近看一本书,里边提到Designer6i, 而我的安装的数据库却没有,下载了一个也不能用,请问该不该学这个工具,它不会不会过时了?
- oracle report 9i的中文字符问题
- ubuntu 12.04 已经安装好了oracle 10G xe版,启动sqlplus遇到一下问题
- SQLPLUS登录时的问题
SELECT DISTINCT (RTRIM(Parent_Dwg_No)+RTRIM(Parent_Rev_No)) AS prt_dwg_no
FROM Rt_basic_data
WHERE RTRIM(Parent_Dwg_No) + RTRIM(Parent_Rev_No) not in (select (RTRIM(Dwg_No) + RTRIM(Dwg_Rev)) as dwgno from Rt_basic_data);
FROM Rt_basic_data a left join Rt_basic_data b
on RTRIM(a.Parent_Dwg_No) + RTRIM(a.Parent_Rev_No)=RTRIM(b.Dwg_No) + RTRIM(b.Dwg_Rev)
WHERE b.Dwg_N is null
报错,该特定字段‘Parent_Dwg_No’可以参考sql语句中FROM子句列表中的多个表
SELECT DISTINCT (RTRIM(a.Parent_Dwg_No)+RTRIM(a.Parent_Rev_No)) AS prt_dwg_no
FROM Rt_basic_data a left join Rt_basic_data b
on RTRIM(a.Parent_Dwg_No) + RTRIM(a.Parent_Rev_No)=RTRIM(b.Dwg_No) + RTRIM(b.Dwg_Rev)
WHERE b.Dwg_N is null
FROM Rt_basic_data t
WHERE not exists (select 1 from Rt_basic_data where Dwg_No=t.Dwg_No and Dwg_Rev=t.Dwg_Rev);
查看了些资料,改用ORACAL,里面有start with 可以生树状图,能满足我这个要求
from (select Parent_Dwg_No, Parent_Rev_No, rownum num
from Rt_basic_data
start with Dwg_No||Dwg_Rev = '0223GAM001'
connect by prior Parent_Dwg_No||Parent_Rev_No = Dwg_No||Dwg_Rev
order by num DESC)
where rownum = 1
1 5247GBJ 002 2
我想要得到的结果是
0029SAA 001