`

DB2中的CASE使用

    博客分类:
  • DB2
阅读更多

1、CASE 某个字段 WHEN 某个值 THEN  赋予某个值 ELSE  赋予另外个值  END

2、或者: CASE 某个字段 WHEN 某个值 THEN  赋予另外个值 END

3、注意:

  1. THEN 和 ELSE 不一定要搭配使用
  2. WHEN 后面或者ELSE后面甚至还可以执行SQL代码段。

例子:

--1

SELECT * FROM SY_CORP_PRODUCT
WHERE
CASE N_CORP_CODE WHEN 969 THEN 123 ELSE N_CORP_CODE END = 969
;

--2

SELECT * FROM SY_CORP_PRODUCT WHERE N_CORP_CODE  = 123;

--3

SELECT * FROM SY_CORP_PRODUCT WHERE N_CORP_CODE  = 969;

1的数据集=2的数据集U3的数据集

 
分享到:
评论

相关推荐

    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变量的赋值,...

    DB2使用经验积累PDF

    - **DELPHI中从DB2取BIGINT的数据**:在DELPHI中使用合适的驱动程序和数据类型映射来处理从DB2获取的大整型数据。 #### 六、DB2表及SP管理 - **权限管理**: - **数据库权限控制**:控制对整个数据库的访问权限。...

    DB2使用经验积累及心得

    本文档主要总结了在首都国际机场、海口梅兰国际机场系统的开发过程中积累的DB2使用经验和心得。这些经验来源于实际项目实践,涉及DB2数据库的多种应用场景和技术细节。所处的运行环境为IBM s80机器,操作系统为AIX...

    DB2使用经验积累

    20. **给select语句指定隔离级别**:可以通过在`SELECT`语句中使用`WITH`子句来指定读取数据时的事务隔离级别。 21. **atomic及notatomic区别**:`ATOMIC`和`NOT ATOMIC`用于控制存储过程的事务行为。`ATOMIC`表示...

    oracle和db2的区别

    - 这个操作在DB2中也能高效地清空表。 #### 6. 关于ROWID - **Oracle**: - ROWID是Oracle数据库提供的一个特殊功能,用于唯一标识表中的每一行。 - **DB2**: - DB2 V8版本开始支持类似ROWID的功能。 #### 7. ...

    DB2到GreenPlum/PostgreSQL的转换指南

    在FROM子句中使用子查询来定义临时表也是一种常见的做法。DB2与GreenPlum/PostgreSQL在这方面的实现相似,但在某些细节上可能存在差异。 ##### 2.4.3 在查询的SELECT部分中完全选择 在SELECT子句中嵌入子查询来生成...

    DB2数据库用户手册

    - **类似DECODE的转码操作**:DB2中可以使用`CASE`表达式来实现类似Oracle DECODE的功能。 - **类似CHARINDEX查找字符在字符串中的位置**:使用`POSITION`函数来实现类似功能。 - **类似DATEDIF计算两个日期的相差...

    DB2存储过程开发与优化

    4. **控制流语句**:存储过程中可以使用`IF-THEN-ELSE`、`CASE`、`WHILE`循环等结构来实现逻辑判断和循环控制。 5. **游标和事务管理**:在存储过程中,可能需要处理多行结果集,这时游标就显得尤为重要。同时,...

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

    取子串在SQL Server中使用`SUBSTRING()`, 在Oracle和DB2中使用`SUBSTR()`。 ### 8. 其他DB2 V8.1常用命令 - 创建数据库: 使用`db2 CREATE DATABASE database_name` - 删除数据库: 使用`db2 DROP DATABASE database...

    牛新庄:DB2使用经验

    - **类似于ORACLE的TRUNCATE清表但不记日志的做法**:在DB2中使用`TRUNCATE TABLE`命令清除表中的所有数据而不记录日志。 - **用CLI编程批量的INSERT**:使用CLI(Call Level Interface)进行批量插入操作,提高...

    ORACLE转DB2对照全解

    **注意:** 在DB2中,UDF和触发器中也可以使用游标,但语法略有不同。 ##### 3.3 转换游标的属性 游标的属性可以帮助开发者获取游标的状态信息。 **Oracle:** ```sql IF c1%NOTFOUND THEN -- 处理未找到的情况 ...

    DB2数据库使用经验积累

    例如,在存储过程中使用`SELECT COUNT(*) INTO @rowCount FROM table_name WHERE condition;`。 ##### 3.13 从存储过程返回结果集(游标)的用法 从存储过程返回结果集通常需要使用游标。例如: ```sql CREATE ...

    ORACLE DB2开发中的对比

    对于数字字符串转换,ORACLE使用`to_number()`函数,如`select to_number('123') from dual`,而在DB2中,可以使用`cast()`函数,如`select cast('123' as integer) from sysibm.sysdummy1`。 创建类似表的操作在...

    DB2.SQL.PL.Essential.Guide(DB2 存储过程_English)

    4. **控制流程语句**:学习如何在存储过程中使用IF-THEN-ELSE、CASE语句、WHILE循环和FOR循环等控制结构,实现逻辑分支和循环处理。 5. **游标和嵌套查询**:在存储过程中使用游标来逐行处理结果集,以及如何在存储...

    DB2手册pdf

    在DB2中,没有直接对应的`DECODE`函数,但可以使用`CASE`表达式实现相似功能。例如: ```sql SELECT CASE WHEN column_name = 'value' THEN 'replacement_value' ELSE column_name END AS result_column FROM table_...

    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中需要使用...

    DB2学习手册

    5. **类似DECODE的转码操作:** 使用`CASE`语句实现类似Oracle DECODE的功能,根据不同的条件返回不同的值。 6. **类似CHARINDEX查找字符在字符串中的位置:** 使用`POSITION`函数来查找一个字符串在另一个字符串中的...

    DB2 优化,db2性能优化,查询优化

    - **使用CASE替代IF**:在许多情况下,可以将IF结构重写为CASE表达式来简化查询逻辑,提高解析速度。 #### 三、并发性和系统统计信息 除了上述查询级别的优化外,还需要关注并发性和系统的统计信息: **1. 并发性...

Global site tag (gtag.js) - Google Analytics