У меня есть простой (но не очень умный) код в SQL (оракул).Этот SQL работает корректно на версии oracle 12c, но есть исключение на версии oracle v. 11g.Можете ли вы дать мне ответ, почему?
create table app_status (id_status int, description varchar2(20 char), range_char char(1));
/
create table app (id_app int, description varchar2(20 char), range_char char(1));
/
insert into app_status (id_status, description,range_char) values (1,'opis 1','a');
insert into app_status (id_status, description,range_char) values (2, 'opis 2','b');
insert into app_status (id_status, description,range_char) values (3, 'opis 3','a');
insert into app_status (id_status, description,range_char) values (4, 'opis 4','a');
/
insert into app (id_app,description,range_char) values (1,'app 1','a');
insert into app (id_app,description,range_char) values (2,'app 2','a');
insert into app (id_app,description,range_char) values (3,'app 3','a');
insert into app (id_app,description,range_char) values (4,'app 4','b');
insert into app (id_app,description,range_char) values (5,'app 5','a');
insert into app (id_app,description,range_char) values (6,'app 6','a');
insert into app (id_app,description,range_char) values (7,'app 7','c');
insert into app (id_app,description,range_char) values (8,'app 8','a');
insert into app (id_app,description,range_char) values (9,'app 9','a');
/
-- this query does not work on oracle v.11g
select * from app where not exists (
select id_status from (
select id_STATUS FROM APP_STATUS
WHERE APP_STATUS.RANGE_CHAR = APP.RANGE_CHAR
ORDER BY ID_STATUS DESC
) WHERE ROWNUM=1);
Я не смог найти информацию в спецификации oracle 11g, почему она не работает.Может быть, это не правильно на 12c, но более высокая версия терпит неровности?