Подзапрос
Функция
Определение подзапроса.
Спецификация
< подзапрос >
::=
Синтаксические правила
-
Если
< подзапрос >
указан в предикате, отличном от< предиката существования >
, то он должен содержать ровно один столбец. -
Максимально допустимый уровень вложенности 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);