有一个表
UUID XUHAO PRICE
1 3 140
2 3.1 140
3 3.1.1 50
4 3.1.1.1 20
5 3.1.1.2 30
6 3.1.2 90
7 3.1.2.1 40
8 3.1.2.2 50
9 4 136
10 4.1 70
11 4.2 66
12 5 90
要求写一个SQL语句,得到如下的数据
UUID XUHAO PRICE
4 3.1.1.1 20
5 3.1.1.2 30
7 3.1.2.1 40
8 3.1.2.2 50
10 4.1 70
11 4.2 66
12 5 90附创建表的脚本及测试数据
CREATE TABLE TABLE1
(
UUID VARCHAR2(20 BYTE),
XUHAO VARCHAR2(20 BYTE),
PRICE NUMBER(10,2)
)Insert into TABLE1
(UUID, XUHAO, PRICE)
Values
('001', '3', 140);
Insert into TABLE1
(UUID, XUHAO, PRICE)
Values
('002', '3.1', 140);
Insert into TABLE1
(UUID, XUHAO, PRICE)
Values
('003', '3.1.1', 50);
Insert into TABLE1
(UUID, XUHAO, PRICE)
Values
('004', '3.1.1.1', 20);
Insert into TABLE1
(UUID, XUHAO, PRICE)
Values
('005', '3.1.1.2', 30);
Insert into TABLE1
(UUID, XUHAO, PRICE)
Values
('006', '3.1.2', 90);
Insert into TABLE1
(UUID, XUHAO, PRICE)
Values
('007', '3.1.2.1', 40);
Insert into TABLE1
(UUID, XUHAO, PRICE)
Values
('008', '3.1.2.2', 50);
Insert into TABLE1
(UUID, XUHAO, PRICE)
Values
('009', '4', 136);
Insert into TABLE1
(UUID, XUHAO, PRICE)
Values
('010', '4.1', 70);
Insert into TABLE1
(UUID, XUHAO, PRICE)
Values
('011', '4.2', 66);
Insert into TABLE1
(UUID, XUHAO, PRICE)
Values
('012', '5', 90);
COMMIT;
UUID XUHAO PRICE
1 3 140
2 3.1 140
3 3.1.1 50
4 3.1.1.1 20
5 3.1.1.2 30
6 3.1.2 90
7 3.1.2.1 40
8 3.1.2.2 50
9 4 136
10 4.1 70
11 4.2 66
12 5 90
要求写一个SQL语句,得到如下的数据
UUID XUHAO PRICE
4 3.1.1.1 20
5 3.1.1.2 30
7 3.1.2.1 40
8 3.1.2.2 50
10 4.1 70
11 4.2 66
12 5 90附创建表的脚本及测试数据
CREATE TABLE TABLE1
(
UUID VARCHAR2(20 BYTE),
XUHAO VARCHAR2(20 BYTE),
PRICE NUMBER(10,2)
)Insert into TABLE1
(UUID, XUHAO, PRICE)
Values
('001', '3', 140);
Insert into TABLE1
(UUID, XUHAO, PRICE)
Values
('002', '3.1', 140);
Insert into TABLE1
(UUID, XUHAO, PRICE)
Values
('003', '3.1.1', 50);
Insert into TABLE1
(UUID, XUHAO, PRICE)
Values
('004', '3.1.1.1', 20);
Insert into TABLE1
(UUID, XUHAO, PRICE)
Values
('005', '3.1.1.2', 30);
Insert into TABLE1
(UUID, XUHAO, PRICE)
Values
('006', '3.1.2', 90);
Insert into TABLE1
(UUID, XUHAO, PRICE)
Values
('007', '3.1.2.1', 40);
Insert into TABLE1
(UUID, XUHAO, PRICE)
Values
('008', '3.1.2.2', 50);
Insert into TABLE1
(UUID, XUHAO, PRICE)
Values
('009', '4', 136);
Insert into TABLE1
(UUID, XUHAO, PRICE)
Values
('010', '4.1', 70);
Insert into TABLE1
(UUID, XUHAO, PRICE)
Values
('011', '4.2', 66);
Insert into TABLE1
(UUID, XUHAO, PRICE)
Values
('012', '5', 90);
COMMIT;
解决方案 »
- 创建表空间时用了nologing选项,为什么还可以recover?
- 一个sql连表更新的问题
- 有没有高手用11g备份过数据库的,什么步骤请教大家了
- oracle 8i 的时间文件、重做日志文件、控制文件、初始化参数文件 分别是那些?在什么地方?
- pdf的文件,放入数据库中,然后通过网页进行全文检索,如何实现呢
- 在where里写的 “表.列名 is not null 与 表.列名!=null”有什么区别?
- 急求:用bat批处理文件创建触发器出现错误
- 杭州英资企业高薪招聘Oracle, Java, C#/C++, Unix人才,去新加坡,英国工作机会
- 又碰到一个问题,高手指教!!!
- 超级菜的问题
- 请进行帮看一样哪种方案好(数据库设计)
- 寻求解决方案!关于Oracle查询速度的.
select * from table1 a
where not exists(
select 1 from table1 where xuhao like a.xuhao||'._')
select * from table1 a
where not exists(
select 1 from table1 where xuhao like a.xuhao||'.%')或者
select * from table1 a
where connect_by_isleaf=1
start with length(xuhao)=1
connect by xuhao like prior xuhao||'.%'
and xuhao not like prior xuhao||'.%.%'
如果序号里的数字不会出现2位的话
可以
select * from table1 a
where connect_by_isleaf=1
start with length(xuhao)=1
connect by xuhao like prior xuhao||'._'第一个比较好
004 3.1.1.1 20.00
005 3.1.1.2 30.00
007 3.1.2.1 40.00
008 3.1.2.2 50.00
010 4.1 70.00
011 4.2 66.00
012 5 90.00不是这样的吗
where connect_by_isleaf=1
start with length(xuhao)=1
connect by xuhao like prior xuhao||'.%'
and xuhao not like prior xuhao||'.%.%'
呵呵,这一个在我本地运行有错,提示:ORA-00904: "CONNECT_BY_ISLEAF": 无效的标识符
不过,你给出的第一个答案是对的,谢谢.