`
javathinker
  • 浏览: 234986 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

DB2 的 case when then else end 条件分支的处理

阅读更多

两种语法模式:


(1):只有一个分支

CASE
WHEN条件THEN结果1
ELSE结果2
END
(2):支持多种分支

CASE表达式1
WHEN表达式2THEN结果1
ELSE结果2
END
上面的WHEN可以重复多次,

===================

简单示例:

  1. select
  2. casewhen1=1
  3. then1
  4. else2
  5. end;
  1. select
  2. case2
  3. when1then1
  4. when2then2
  5. when3then3
  6. else4
  7. end;

============================

下面详细的各举几个例子,这些例子可以用于ESQL和交互式的SQL中
eg1:处理被0除


eg2:字段值对应转换


eg3:获取月份的名字:上面的例子

===================

CASE很好用,不仅SELECT可以用,UPATE里面也蛮灵

以上是关于查询的 下面再来个 update的

贴代码直观:

好了

分享到:
评论
1 楼 qihuitoday 2011-11-10  
不错,学习了。

相关推荐

    ORACLE转DB2对照全解

    **注意:** Oracle支持多重条件分支结构(`IF-THEN-ELSIF`),而DB2仅支持基本的`IF-THEN`和`IF-THEN-ELSE`结构。 #### 二、动态语句 动态语句是指在运行时动态构建并执行的SQL语句,这对于需要根据不同的输入构建...

    提高DB2存储过程性能和健壮性的3个最佳实践

    INSERT INTO tab_sel (SELECT (CASE WHEN col1 > 20 THEN 20 ELSE col1 END), col2 FROM tab_comp); ``` 通过以上实践,我们不仅可以显著提高DB2存储过程的性能,还能增强其健壮性。这些优化措施不仅适用于DB2,...

    ORACLE移植DB2注意事项

    Oracle中提供了`decode`函数用于条件判断,而在DB2中则使用`CASE WHEN THEN ELSE END`这样的结构来实现相同的功能。例如: ```sql -- Oracle SELECT decode(a.status, 1, 'Active', 0, 'Inactive') AS status_desc ...

    DB2常用SQL写法

    DB2中可以使用CASE函数来实现复杂的逻辑判断,例如set prodname = (case when (name is not null) then name when (namestr is not null) then namestr else defaultname end);该语句可以实现对prodname变量的赋值,...

    SQL_Server,Oracle,DB2数据库SQL语句比较

    - 使用`CASE WHEN...THEN...ELSE...END AS caseConvert`。 - **DB2**: - 使用`CASE WHEN...THEN...ELSE...END AS caseConvert`。 这些语句用于基于某些条件返回不同的结果,是SQL查询中常用的功能之一。 ### 八...

    DB2、ORACLE

    - Oracle的DECODE函数在DB2中不支持,可以使用CASE WHEN语句替代,如`SELECT CASE WHEN f_areaid IS NULL THEN '空' ELSE f_areaid END FROM masa_user`。 7. **NVL函数**: - Oracle的NVL在DB2中需要使用...

    oracle转DB2 对照

    - **Oracle** 和 **DB2** 都支持基本的条件语句,如 `IF-THEN`, `IF-THEN-ELSE`, `IF-THEN-ELSIF` 等。 - Oracle示例: ```sql IF condition THEN -- statements END IF; ``` - DB2示例: ```sql IF ...

    java 调用db2存储过程

    WHEN 'A00' THEN insert into "TEMP" values('angelo','A00'); WHEN 'B01' THEN insert into "TEMP" values('angelo','B01'); else insert into "TEMP" values('fucking_code','B01'); END CASE ; END ; ``` ...

    DB2编程基础DB2编程基础DB2编程基础

    SELECT CASE a1 WHEN '1' THEN 'n1' WHEN '2' THEN 'n2' ELSE 'n3' END AS aa1 FROM db2; ``` 或者使用 `COALESCE`: ```sql SELECT COALESCE(NULLIF(a1, '1'), NULLIF(a1, '2'), 'n3') AS aa1 FROM db2; ``` ...

    ORACLE DB2开发中的对比

    DB2仅支持`case`表达式,例如`SELECT id ,name ,CASE WHEN integer(flag)=0 THEN ‘假’WHEN integer(flag)=1 THEN ‘真’ELSE ‘异常’END FROM TEST`。 综上所述,ORACLE和DB2在SQL语法上有明显的区别,但都能...

    DB2手册pdf

    SELECT CASE WHEN column_name = 'value' THEN 'replacement_value' ELSE column_name END AS result_column FROM table_name; ``` #### 类似CHARINDEX查找字符在字串中的位置 在DB2中,使用`STRPOS`函数来查找字符...

    DB2函数大全

    - `CASE WHEN ... THEN ... ELSE ... END`: 根据条件返回不同的结果。 7. **其他高级函数** - ` Soundex(str)`: 计算字符串的Soundex编码,用于近音词查询。 - `DECODE(column, value1, result1, value2, result...

    DB2 SQL 精萃.pdf

    SELECT name, CASE WHEN salary > 5000 THEN 'High Salary' ELSE 'Low Salary' END AS salary_level FROM employees; ``` 此查询将根据员工的薪水将其分类为“High Salary”或“Low Salary”。 #### 7. 定义临时...

    Oracle和DB2的转换[参照].pdf

    WHEN integer(flag) = 0 THEN '假' WHEN integer(flag) = 1 THEN '真' ELSE '异常' END FROM TEST ``` 在进行Oracle到DB2的转换时,理解这些语法差异是至关重要的,以确保查询和数据操作的正确性。同时,还...

    db2 730最新认证题库

    CASE WHEN itemcode = '099' THEN 'SILVER' WHEN itemcode = '788' THEN 'GOLD' WHEN itemcode = '899' THEN 'PLATINUM' ELSE 'ERROR' END FROM supplier ``` - **数据**: | QUANTITY | ITEMCODE | |-------...

    第 存储过程简介PPT学习教案.pptx

    在SQL PL(SQL Programming Language)中,存储过程不仅支持基本的SQL操作,还具备高级编程特性,如变量声明、赋值、条件语句、循环和异常处理。这使得存储过程能够处理更复杂的任务,例如函数、存储过程和触发器的...

Global site tag (gtag.js) - Google Analytics