Подзапрос
Функция
Определение подзапроса.
Спецификация
<подзапрос>
::=Синтаксические правила
-
Если
<подзапрос>указан в предикате, отличном от<предиката существования>, то он должен содержать ровно один столбец. -
Максимально допустимый уровень вложенности SQL-запросов равен 32.
table (table (table (table auto))) limit 2;
-
В подзапросах поддерживается сортировка
ORDER BY.select i from (select i,rownum as j from test1 order by i) where j between 2 and 4 order by i;
-
В подзапросах поддерживается конструкция FETCH FIRST (в том числе, одновременно с ORDER BY).
select sname, (select pname from p, sp where s.snum = sp.snum and p.pnum = sp.pnum order by qty desc fetch first 1) from s;
Такой подзапрос должен возвращать один столбец и максимум одну строку для каждой комбинации записей таблиц, стоящих во FROM (в данном примере – для каждой записи таблицы P).
Примеры
SELECT * FROM Person AS P
WHERE EXISTS (SELECT * FROM Auto
WHERE PersonID =P.PersonID);
Table Person AS P WHERE EXISTS (table Auto WHERE PersonID =P.PersonID);
SELECT * FROM Person WHERE Salary = (SELECT MAX(Salary) FROM Person);
select count(*) from auto where (make, year) in (select 'FORD', 70);
table person WHERE Salary = (SELECT MAX(Salary) FROM Person);
select * from (select (select count(*) from sp where s.snum=sp.snum) n from s);