📜  Teradata-子查询

📅  最后修改于: 2020-11-29 09:01:31             🧑  作者: Mango


子查询根据另一个表中的值返回一个表中的记录。它是另一个查询中的SELECT查询。首先执行称为内部查询的SELECT查询,结果由外部查询使用。它的一些显着特征是-

  • 一个查询可以有多个子查询,并且子查询可以包含另一个子查询。

  • 子查询不会返回重复的记录。

  • 如果子查询仅返回一个值,则可以使用=运算符将其与外部查询一起使用。如果返回多个值,则可以使用IN或NOT IN。

句法

以下是子查询的通用语法。

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

考虑下面的薪水表。

EmployeeNo Gross 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

以下查询标识薪水最高的员工编号。内部SELECT执行聚合函数以返回最大NetPay值,外部SELECT查询使用此值返回具有该值的员工记录。

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

执行此查询时,将产生以下输出。

*** Query completed. One row found. 2 columns returned. 
*** Total elapsed time was 1 second.  
 EmployeeNo     NetPay 
-----------  ----------- 
    103         83000