Teradata - 子查询



子查询根据另一个表中的值返回一个表中的记录。它是一个嵌套在另一个查询中的 SELECT 查询。称为内部查询的 SELECT 查询首先执行,其结果由外部查询使用。它的一些主要特征包括:

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

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

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

语法

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

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

示例

考虑以下 Salary 表。

员工编号 总收入 扣除 净收入
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 
广告

© . All rights reserved.