Учебники

Teradata — подзапросы

Подзапрос возвращает записи из одной таблицы на основе значений из другой таблицы. Это запрос SELECT в другом запросе. Запрос SELECT, вызываемый как внутренний запрос, выполняется первым, а результат используется внешним запросом. Некоторые из его характерных особенностей —

  • Запрос может иметь несколько подзапросов, а подзапросы могут содержать другой подзапрос.

  • Подзапросы не возвращают дубликаты записей.

  • Если подзапрос возвращает только одно значение, вы можете использовать оператор =, чтобы использовать его с внешним запросом. Если он возвращает несколько значений, вы можете использовать IN или NOT IN.

Запрос может иметь несколько подзапросов, а подзапросы могут содержать другой подзапрос.

Подзапросы не возвращают дубликаты записей.

Если подзапрос возвращает только одно значение, вы можете использовать оператор =, чтобы использовать его с внешним запросом. Если он возвращает несколько значений, вы можете использовать IN или NOT IN.

Синтаксис

Ниже приводится общий синтаксис подзапросов.

SELECT col1, col2, col3,… 
FROM  
Outer Table 
WHERE col1 OPERATOR ( Inner SELECT Query);

пример

Рассмотрим следующую таблицу зарплат.

Сотрудник № Валовой дедукция NetPay
101 40000 4000 36000
102 80000 6000 74000
103 90000 7000 83000
104 75000 5000 70000

Следующий запрос определяет номер сотрудника с самой высокой зарплатой. Внутренний SELECT выполняет функцию агрегирования для возврата максимального значения NetPay, а внешний запрос SELECT использует это значение для возврата записи сотрудника с этим значением.

SELECT EmployeeNo, NetPay 
FROM Salary 
WHERE NetPay =  
(SELECT MAX(NetPay)  
FROM Salary);

Когда этот запрос выполняется, он производит следующий вывод.