Основи вкладених запитів
звичайний запит 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.