📜  Teradata子查询

📅  最后修改于: 2021-01-11 11:27:33             🧑  作者: Mango

Teradata子查询

Teradata子查询根据另一个表中的值返回一个表中的记录。

它是另一个查询中的SELECT查询。首先执行称为内部查询的SELECT查询,外部查询使用结果。它的一些最重要的功能是:

  • 一个查询可以有多个子查询,并且子查询可以包含另一个子查询。
  • 子查询不返回重复的记录。
  • 如果SubQuery仅返回一个值,则可以使用=运算符将其与外部查询一起使用。如果返回多个值,则可以使用IN或NOT IN。
  • 子查询必须用括号括起来。

句法

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

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

考虑以下雇员的工资表。

Employee_IdGross Deduction NetPay
1001 40,000 4,000 36,000
1002 80,000 6,000 74,000
1003 90,000 7,000 83,000
1004 75,000 5,000 70,000

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

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

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

     /* Query completed. One row found. 2 columns returned  */
     /* Total elapsed time was 1 second */

 Employee_Id        NetPay 
 
     1003            83000