当前位置:首页 > 问答 > 正文

Oracle 分支语句用法详解:Oracle条件分支语句示例

Oracle 分支语句用法详解:Oracle条件分支语句示例

  1. IF-THEN-ELSE

    Oracle 分支语句用法详解:Oracle条件分支语句示例

    • 基础语法:IF condition THEN statements; ELSE statements; END IF;
    • 示例:
      IF salary > 10000 THEN  
         bonus := salary * 0.2;  
      ELSE  
         bonus := salary * 0.1;  
      END IF;  
  2. CASE 语句

    • 简单 CASE:CASE expression WHEN value1 THEN result1 ... ELSE default END;
    • 搜索式 CASE:CASE WHEN condition1 THEN result1 ... ELSE default END;
    • 示例:
      CASE grade  
         WHEN 'A' THEN '优秀'  
         WHEN 'B' THEN '良好'  
         ELSE '待提升'  
      END;  
  3. DECODE 函数

    Oracle 分支语句用法详解:Oracle条件分支语句示例

    • 语法:DECODE(expr, search1, result1, ..., default)
    • 示例:
      SELECT DECODE(status, 1, '激活', 0, '未激活', '未知') FROM users;  
  4. NULLIF 和 COALESCE

    • NULLIF:NULLIF(expr1, expr2)(相等返回 NULL,否则返回 expr1)
    • COALESCE:返回第一个非 NULL 值,如 COALESCE(col1, col2, 'N/A')
  5. NVL 和 NVL2

    Oracle 分支语句用法详解:Oracle条件分支语句示例

    • NVL:NVL(expr1, default)(expr1 为 NULL 时返回 default)
    • NVL2:NVL2(expr1, result_not_null, result_null)

注意事项

  • PL/SQL 中需使用 END IF 闭合 IF 语句;
  • CASE 语句在 SQL 和 PL/SQL 中均可使用;
  • DECODE 为 Oracle 特有函数,其他数据库可能不支持。
    基于 Oracle 21c 语法,适用于 2025 年参考。)

发表评论