1、CASE 某个字段 WHEN 某个值 THEN 赋予某个值 ELSE 赋予另外个值 END
2、或者: CASE 某个字段 WHEN 某个值 THEN 赋予另外个值 END
3、注意:
THEN 和 ELSE 不一定要搭配使用
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中可以使用CASE函数来实现复杂的逻辑判断,例如set prodname = (case when (name is not null) then name when (namestr is not null) then namestr else defaultname end);该语句可以实现对prodname变量的赋值,...
本文档主要总结了在首都国际机场、海口梅兰国际机场系统的开发过程中积累的DB2使用经验和心得。这些经验来源于实际项目实践,涉及DB2数据库的多种应用场景和技术细节。所处的运行环境为IBM s80机器,操作系统为AIX...
- 这个操作在DB2中也能高效地清空表。 #### 6. 关于ROWID - **Oracle**: - ROWID是Oracle数据库提供的一个特殊功能,用于唯一标识表中的每一行。 - **DB2**: - DB2 V8版本开始支持类似ROWID的功能。 #### 7. ...
在FROM子句中使用子查询来定义临时表也是一种常见的做法。DB2与GreenPlum/PostgreSQL在这方面的实现相似,但在某些细节上可能存在差异。 ##### 2.4.3 在查询的SELECT部分中完全选择 在SELECT子句中嵌入子查询来生成...
4. **控制流语句**:存储过程中可以使用`IF-THEN-ELSE`、`CASE`、`WHILE`循环等结构来实现逻辑判断和循环控制。 5. **游标和事务管理**:在存储过程中,可能需要处理多行结果集,这时游标就显得尤为重要。同时,...
取子串在SQL Server中使用`SUBSTRING()`, 在Oracle和DB2中使用`SUBSTR()`。 ### 8. 其他DB2 V8.1常用命令 - 创建数据库: 使用`db2 CREATE DATABASE database_name` - 删除数据库: 使用`db2 DROP DATABASE database...
- **类似于ORACLE的TRUNCATE清表但不记日志的做法**:在DB2中使用`TRUNCATE TABLE`命令清除表中的所有数据而不记录日志。 - **用CLI编程批量的INSERT**:使用CLI(Call Level Interface)进行批量插入操作,提高...
**注意:** 在DB2中,UDF和触发器中也可以使用游标,但语法略有不同。 ##### 3.3 转换游标的属性 游标的属性可以帮助开发者获取游标的状态信息。 **Oracle:** ```sql IF c1%NOTFOUND THEN -- 处理未找到的情况 ...
对于数字字符串转换,ORACLE使用`to_number()`函数,如`select to_number('123') from dual`,而在DB2中,可以使用`cast()`函数,如`select cast('123' as integer) from sysibm.sysdummy1`。 创建类似表的操作在...
4. **控制流程语句**:学习如何在存储过程中使用IF-THEN-ELSE、CASE语句、WHILE循环和FOR循环等控制结构,实现逻辑分支和循环处理。 5. **游标和嵌套查询**:在存储过程中使用游标来逐行处理结果集,以及如何在存储...
在DB2中,没有直接对应的`DECODE`函数,但可以使用`CASE`表达式实现相似功能。例如: ```sql SELECT CASE WHEN column_name = 'value' THEN 'replacement_value' ELSE column_name END AS result_column FROM table_...
- 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中需要使用...
5. **类似DECODE的转码操作:** 使用`CASE`语句实现类似Oracle DECODE的功能,根据不同的条件返回不同的值。 6. **类似CHARINDEX查找字符在字符串中的位置:** 使用`POSITION`函数来查找一个字符串在另一个字符串中的...
- **使用CASE替代IF**:在许多情况下,可以将IF结构重写为CASE表达式来简化查询逻辑,提高解析速度。 #### 三、并发性和系统统计信息 除了上述查询级别的优化外,还需要关注并发性和系统的统计信息: **1. 并发性...