- Teradata 教程
- Teradata - 首頁
- Teradata 基礎
- Teradata - 簡介
- Teradata - 安裝
- Teradata - 架構
- Teradata - 關係型概念
- Teradata - 資料型別
- Teradata - 表
- Teradata - 資料操作
- Teradata - SELECT 語句
- 邏輯與條件運算子
- Teradata - 集運算子
- Teradata - 字串操作
- Teradata - 日期/時間函式
- Teradata - 內建函式
- Teradata - 聚合函式
- Teradata - CASE 與 COALESCE
- Teradata - 主索引
- Teradata - 連線
- Teradata - 子查詢
- Teradata 高階
- Teradata - 表型別
- Teradata - 空間概念
- Teradata - 二級索引
- Teradata - 統計資訊
- Teradata - 壓縮
- Teradata - Explain
- Teradata - 雜湊演算法
- Teradata - 連線索引
- Teradata - 檢視
- Teradata - 宏
- Teradata - 儲存過程
- Teradata - 連線策略
- Teradata - 分割槽主索引
- Teradata - OLAP 函式
- Teradata - 資料保護
- Teradata - 使用者管理
- Teradata - 效能調優
- Teradata - FastLoad
- Teradata - MultiLoad
- Teradata - FastExport
- Teradata - BTEQ
- Teradata 有用資源
- Teradata - 問題與解答
- Teradata - 快速指南
- Teradata - 有用資源
- Teradata - 討論
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
廣告