Microsoft SQL Server
подзапросов
Поиск…
подзапросов
Подзапрос - это запрос в другом SQL-запросе. Подзапрос также называется внутренним запросом или внутренним выбором, а оператор, содержащий подзапрос, называется внешним запросом или внешним выбором.
Заметка
- Подзапросы должны быть заключены в круглые скобки,
- ORDER BY нельзя использовать в подзапросе.
- Тип изображения, такой как BLOB, массив, текстовые типы данных, не разрешен в подзапросах.
Подзапросы могут использоваться с оператором select, insert, update и delete, в котором, from, select, а также IN, операторы сравнения и т. Д.
У нас есть таблица с именем ITCompanyInNepal, на которой мы будем выполнять запросы, чтобы показать примеры подзапросов:
Примеры: SubQueries с инструкцией Select
с оператором In и где :
SELECT *
FROM ITCompanyInNepal
WHERE Headquarter IN (SELECT Headquarter
FROM ITCompanyInNepal
WHERE Headquarter = 'USA');
с оператором сравнения и где условие
SELECT *
FROM ITCompanyInNepal
WHERE NumberOfEmployee < (SELECT AVG(NumberOfEmployee)
FROM ITCompanyInNepal
)
с предложением select
SELECT CompanyName,
CompanyAddress,
Headquarter,
(Select SUM(NumberOfEmployee)
FROM ITCompanyInNepal
Where Headquarter = 'USA') AS TotalEmployeeHiredByUSAInKathmandu
FROM ITCompanyInNepal
WHERE CompanyAddress = 'Kathmandu' AND Headquarter = 'USA'
Подзапросы со вставкой
Нам нужно вставить данные из таблицы IndianCompany в ITCompanyInNepal. Таблица для IndianCompany приведена ниже:
INSERT INTO ITCompanyInNepal
SELECT *
FROM IndianCompany
Подзапросы с оператором обновления
Предположим, что все компании, штаб-квартира которых находится в США, решили уволить 50 сотрудников из всех американских компаний в Непале из-за некоторых изменений в политике компаний США.
UPDATE ITCompanyInNepal
SET NumberOfEmployee = NumberOfEmployee - 50
WHERE Headquarter IN (SELECT Headquarter
FROM ITCompanyInNepal
WHERE Headquarter = 'USA')
Подзапросы с инструкцией Delete
Предположим, что все компании, штаб-квартира которых является Данией, решили закрыть свои компании из Непала.
DELETE FROM ITCompanyInNepal
WHERE Headquarter IN (SELECT Headquarter
FROM ITCompanyInNepal
WHERE Headquarter = 'Denmark')