首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle DECODE 函數:最直觀的條件式邏輯寫法

     編輯:Oracle 資料庫相關知識

DECODE 相當於簡化版 CASE 或 IF-THEN-ELSE,語法:

DECODE(expr, search1, result1, search2, result2, ..., default_result)

依序比對 expr 與各 search 值,匹配則回傳對應 result;全不匹配則回傳 default_result(可省略,預設為 NULL)。

實務範例

SELECT DECODE(T1.STATUS,
       '96', '救援完成',
       '97', '拖車完成',
       '98', '終止/自解',
       '') AS 施救結果
FROM   rescue_table T1;
  • STATUS = '96' → 顯示「救援完成」
  • STATUS = '97' → 顯示「拖車完成」
  • STATUS = '98' → 顯示「終止/自解」
  • 其他值 → 顯示空字串

DECODE vs CASE

特性DECODECASE
可讀性簡單等值比對極佳支援範圍、複合條件、IS NULL 等
效能幾乎相同幾乎相同
標準相容Oracle 專屬ANSI SQL 標準

建議:簡單等值映射用 DECODE 程式碼最精簡;複雜條件改用 CASE 更清晰且可移植。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved