- 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 - CASE 和 COALESCE 函式
本章解釋 Teradata 的 CASE 和 COALESCE 函式。
CASE 表示式
CASE 表示式根據條件或 WHEN 子句評估每一行,並返回第一個匹配的結果。如果沒有匹配項,則返回 ELSE 部分的結果。
語法
以下是 CASE 表示式的語法。
CASE <expression> WHEN <expression> THEN result-1 WHEN <expression> THEN result-2 ELSE Result-n END
示例
考慮以下員工表。
| 員工編號 | 名字 | 姓氏 | 入職日期 | 部門編號 | 出生日期 |
|---|---|---|---|---|---|
| 101 | Mike | James | 3/27/2005 | 1 | 1/5/1980 |
| 102 | Robert | Williams | 4/25/2007 | 2 | 3/5/1983 |
| 103 | Peter | Paul | 3/21/2007 | 2 | 4/1/1983 |
| 104 | Alex | Stuart | 2/1/2008 | 2 | 11/6/1984 |
| 105 | Robert | James | 1/4/2008 | 3 | 12/1/1984 |
以下示例評估 DepartmentNo 列,如果部門編號為 1,則返回 1;如果部門編號為 3,則返回 2;否則返回“無效部門”。
SELECT EmployeeNo, CASE DepartmentNo WHEN 1 THEN 'Admin' WHEN 2 THEN 'IT' ELSE 'Invalid Dept' END AS Department FROM Employee;
執行上述查詢後,將產生以下輸出。
*** Query completed. 5 rows found. 2 columns returned. *** Total elapsed time was 1 second. EmployeeNo Department ----------- ------------ 101 Admin 104 IT 102 IT 105 Invalid Dept 103 IT
上述 CASE 表示式也可以寫成以下形式,這將產生與上述相同的輸出。
SELECT EmployeeNo, CASE WHEN DepartmentNo = 1 THEN 'Admin' WHEN DepartmentNo = 2 THEN 'IT' ELSE 'Invalid Dept' END AS Department FROM Employee;
COALESCE 函式
COALESCE 是一個語句,它返回表示式中第一個非空值。如果表示式的所有引數都計算為 NULL,則返回 NULL。以下是語法。
語法
COALESCE(expression 1, expression 2, ....)
示例
SELECT EmployeeNo, COALESCE(dept_no, 'Department not found') FROM employee;
NULLIF 函式
NULLIF 語句如果引數相等則返回 NULL。
語法
以下是 NULLIF 語句的語法。
NULLIF(expression 1, expression 2)
示例
以下示例如果 DepartmentNo 等於 3 則返回 NULL,否則返回 DepartmentNo 值。
SELECT EmployeeNo, NULLIF(DepartmentNo,3) AS department FROM Employee;
上述查詢返回以下記錄。您可以看到員工 105 的部門編號為 NULL。
*** Query completed. 5 rows found. 2 columns returned.
*** Total elapsed time was 1 second.
EmployeeNo department
----------- ------------------
101 1
104 2
102 2
105 ?
103 2
廣告