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.