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