У меня есть следующая таблица ORACLE и данные:
create table test_table (field1 varchar2(20));
insert into test_table values ('aaa.bbb.ccc.dd');
insert into test_table values ('aaa.bbb.c*c.dd');
insert into test_table values ('aaa.bbb.ccc');
insert into test_table values ('aaa.b*b.ccc');
insert into test_table values ('aaa.bbb');
insert into test_table values ('a*a.bbb');
insert into test_table values ('aaa');
insert into test_table values ('bbb.ccc.dd.ee');
insert into test_table values ('bbb.ccc.dd');
insert into test_table values ('bbb.ccc');
insert into test_table values ('bbb');
Я бы хотел выбрать таблицу, которая будет извлекать записи в следующем порядке:
aaa.bbb.ccc.dd
aaa.bbb.c * c.dd
aaa.bbb.ccc
aaa.b * b.ccc
aaa.bbb
a * a.bbb
aaa
bbb.ccc.dd.ee
bbb.ccc.dd
bbb.ccc
bbb
В моих вставках над записями, очевидно, уже в правильном порядке, но ониобычно не будет.
Если я запускаю следующее, выберите:
select field1 from test_table
order by field1;
Я получу вывод:
a * a.bbb
aaa
aaa.b * b.ccc
aaa.bbb
aaa.bbb.c * c.dd
aaa.bbb.ccc
aaa.bbb.ccc.dd
bbb
bbb.ccc
bbb.ccc.dd
bbb.ccc.dd.ee
Как написать оператор SELECT для получения желаемого заказа?