Teradata - SubQueries
Uma subconsulta retorna registros de uma tabela com base nos valores de outra tabela. É uma consulta SELECT dentro de outra consulta. A consulta SELECT chamada como consulta interna é executada primeiro e o resultado é usado pela consulta externa. Algumas de suas características mais importantes são -
Uma consulta pode ter várias subconsultas e as subconsultas podem conter outra subconsulta.
As subconsultas não retornam registros duplicados.
Se a subconsulta retornar apenas um valor, você pode usar o operador = para usá-lo com a consulta externa. Se ele retornar vários valores, você pode usar IN ou NOT IN.
Sintaxe
A seguir está a sintaxe genérica das subconsultas.
SELECT col1, col2, col3,…
FROM
Outer Table
WHERE col1 OPERATOR ( Inner SELECT Query);
Exemplo
Considere a seguinte tabela de salários.
EmployeeNo | Bruto | Deduction | NetPay |
---|---|---|---|
101 | 40,000 | 4,000 | 36,000 |
102 | 80,000 | 6,000 | 74,000 |
103 | 90,000 | 7,000 | 83,000 |
104 | 75,000 | 5,000 | 70,000 |
The following query identifies the employee number with highest salary. The inner SELECT performs the aggregation function to return the maximum NetPay value and the outer SELECT query uses this value to return the employee record with this value.
SELECT EmployeeNo, NetPay
FROM Salary
WHERE NetPay =
(SELECT MAX(NetPay)
FROM Salary);
When this query is executed, it produces the following output.
*** Query completed. One row found. 2 columns returned.
*** Total elapsed time was 1 second.
EmployeeNo NetPay
----------- -----------
103 83000