`
wandejun1012
  • 浏览: 2737611 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

DB关键字--coalesce,decode

    博客分类:
  • DB
 
阅读更多

1、DECODE(value, if1, then1, if2,then2, if3,then3, . . . else )

Value 代表某个表的任何类型的任意列或一个通过计算所得的任何结果。当每个value值被测试,如果value的值为if1,Decode 函数的结果是then1;如果value等于if2,Decode函数结果是then2;等等。事实上,可以给出多个if/then 配对。如果value结果不等于给出的任何配对时,Decode 结果就返回else 。

 

例子:

select sid,serial#,username,

  DECODE(command,

  0,’None’,

  2,’Insert’,

  3,’Select’,

  6,’Update’,

  7,’Delete’,

  8,’Drop’,

  ‘Other’) cmmand

  from v$session where username is not null;

 

-------------------------------------------------------------------------------

2、COALESCE,有点像isnull,不过2者其实区别还是蛮大很大

见如下SQL语句:

select coalesce(BPAgent,CustomerId,xm,xh) from table。

它的作用是显示括号中第一个不为NULL的字段!(详情请见1:

http://wandejun1012.iteye.com/blog/1131607

)

 

如果括号中仅有2个字段,这个就和Isnull有点像了。

 

 

 

详情请见2:http://msdn.microsoft.com/zh-cn/library/ms190349.aspx

分享到:
评论

相关推荐

    oracle和db2的区别

    - `LIKE`关键字用于复制现有表的结构。 #### 9. 解码方法 - **Oracle**: - 支持`DECODE`函数和`CASE`语句来实现条件判断。 - 例如:`DECODE(column_name, value1, result1, value2, result2, default_result)` ...

    DB2 与ORACLE的比对.pdf

    以下是对这两个数据库系统在数据类型转换、WHERE 条件、REPLACE 关键字、子查询别名、DATE 数据类型、分页处理、DECODE 函数和 NVL 函数等方面的对比: 1. **数据类型转换函数**: - ORACLE 提供 to_char、to_...

    DB2、ORACLE

    - Oracle的NVL在DB2中需要使用COALESCE,如`SELECT COALESCE(f_areaid, '空') FROM masa_user`。 8. **SUBSTR函数**: - DB2的SUBSTR函数使用方式可能与Oracle不同,具体使用时需要查阅DB2的文档以获取正确的语法...

    DB2数据库用户手册

    - **类似decode的转码操作**:DB2中可以使用`CASE`语句实现类似Oracle `DECODE`函数的功能,根据条件返回不同的值。 - **类似charindex查找字符在字串中的位置**:DB2中可以使用`POSITION`函数来实现类似功能,它...

    ORACLE转DB2对照全解

    **注意:** DB2不支持`REPLACE`关键字,并且`NO CASCADE`对于DB2的`BEFORE`触发器是必须的,它指明触发器的触发动作不会影响其他触发器。`MODE DB2SQL`也是必须的。 ##### 1.3 创建UDF (用户定义函数) **DB2 标量...

    ORACLE与DB2的区别和转换

    - **解析**: Oracle使用`rownum`关键字来限制返回的结果集行数。相比之下,DB2采用了`fetch first`语法,这使得指定结果集中的前几行变得更加直观和简单。 ##### 2. 获取系统日期 **Oracle**: `Select sysdate ...

    DB2常用SQL写法

    DB2中可以使用DECODE函数来实现多重判断,例如set prodname = coalesce(name, namestr, defaultname);该语句可以实现对prodname变量的赋值,符合条件的值将被赋给prodname。 九、游标的使用 DB2中可以使用DECLARE...

    oracle转DB2 对照

    SELECT DECODE(column, 'value1', result1, 'value2', result2, default_result) FROM table; ``` - 注意点: DB2中没有直接对应的函数,但可以使用 `CASE` 语句实现相同功能。 #### 13. Rownum - **Oracle** ...

    DB2 与ORACLE的比对.docx

    - NVL 在 ORACLE 中用于处理 NULL 值,DB2 中对应的函数是 COALESCE,它们都能将 NULL 替换为指定的默认值。 9. **SUBSTR 函数**: - DB2 的 SUBSTR 函数与 ORACLE 的用法类似,用于提取字符串的一部分。例如,`...

    DB2使用经验积累

    6. **类似decode的转码操作**:DB2中没有内置的`DECODE`函数,但可以使用`CASE`语句来实现类似的功能。 7. **类似charindex查找字符在字串中的位置**:DB2提供了`POSITION`函数来查找一个字符串在另一个字符串中的...

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

    - DB2没有Oracle中的 `DECODE` 函数,但可以通过 `CASE` 表达式或者使用 `COALESCE` 实现类似的功能。例如: ```sql SELECT CASE a1 WHEN '1' THEN 'n1' WHEN '2' THEN 'n2' ELSE 'n3' END AS aa1 FROM db2; ```...

    DB2数据库使用经验积累

    此外,还可以使用`COALESCE`函数来处理可能为空的值。 ##### 3.12 取得处理的记录数 要获取查询或更新操作所影响的记录数量,可以使用`SQLCA.SQLRowCount`变量。例如,在存储过程中使用`SELECT COUNT(*) INTO @...

    db2开发经验

    8. **类似DECODE的转码操作:** 可以使用`CASE WHEN`语句来实现类似Oracle中DECODE的功能。 9. **类似CHARINDEX查找字符在字串中的位置:** 使用`POSITION`函数可以找到子字符串在主字符串中的位置。 10. **类似...

    access和sql语法区别详细

    Access 中结合 `IIF` 和 `IsNull` 用于替换空值,SQL Server 使用 `Coalesce`,Oracle 用 `Nvl`,DB2 也有 `Coalesce`。自定义 `GetNullStr` 可以处理这种情况。 7. **条件取值**: Access 中的 `IIF` 类似于 SQL...

    DB2编程序技巧 (一)

    - **NULL 值处理**:可以通过使用`COALESCE`函数来处理可能为空的字段,确保非空值的使用。 **1.11 获取处理的记录数** - **ROW_COUNT() 函数**:`ROW_COUNT()`函数可以返回上一次受影响的行数。 **1.12 从存储...

Global site tag (gtag.js) - Google Analytics