Основи вкладених запитів

звичайний запит SELECT, що включає звичайні компоненти списку вибірки;

звичайне пропозицію FROM, що включає одне або більше імен таблиць або уявлень;

необов'язкове пропозицію WHERE;

необов'язкове пропозицію GROUP BY;

необов'язкове пропозицію HAVING.

Запит SELECT вкладеного запиту завжди укладено в дужки. Він не може включати пропозицій COMPUTE або FOR BROWSE і може включати пропозицію ORDER BY тільки разом з пропозицією TOP.

Вкладений запит може бути вкладений в пропозицію WHERE або HAVING зовнішньої інструкції SELECT, INSERT, UPDATE або DELETE або в інший вкладений запит. Можливо створювати вкладеність до 32-го рівня, хоча обмеження змінюються в залежності від обсягу пам'яті і складності інших виразів в запиті. Окремі запити можуть не підтримувати вкладеність до 32-го рівня. Підзапит може з'являтися всюди, де може використовуватися вираз, якщо він повертає одне значення.

Якщо таблиця з'являється тільки у вкладеному запиті, а не в зовнішньому запиті, в цьому випадку стовпчики цієї таблиці не можуть бути включені в вихідні дані (список вибірки зовнішнього запиту).

Інструкції, що включають вкладені запити, зазвичай мають один з наступних форматів:

WHERE expression comparison_operator [ANY | ALL] (subquery)

У деяких інструкціях мови Transact-SQL вкладений запит може розглядатися як окремий запит. По суті, результати вкладеного запиту підставляються в зовнішній запит (хоча це необов'язково і залежить від того, як в Microsoft SQL Server реалізована обробка інструкцій мови Transact-SQL з вкладеними запитами).

Існують три основні типи підзапитів, які:

працюють в списках, вставлених після ключового слова IN, або тих, які оператор порівняння змінив за допомогою ключового слова ANY або ALL;

вставлені оператором немодифікованих порівнянь і повинні повертати одне значення;

є тестами на існування, що починаються з ключового слова EXISTS.

Схожі статті