`
昔雪似花
  • 浏览: 204330 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

oracle.mysql.decode()

 
阅读更多
举例:
     oracle:
select decode(pay_name,'aaaa','bbb',pay_name),sum(comm_order),sum(suc_order),sum(suc_amount) From  payment.order_tab  group by decode(pay_name,'aaaaa','bbbb',pay_name)

转换成mysql:实现

select case when pay_name='aaa' then 'bbb' else pay_name end ,sum(comm_order),sum(suc_order),sum(suc_amount) From  payment.order_tab  group by case when pay_name='aaa' then 'bbb' else pay_name end

在mysql中有decode()是这样解释的:一种是加密,另外一种是比较
     在Oracle中:
     语法:DECODE(control_value,value1,result1[,value2,result2…] [,default_result]);control _value试图处理的数值。DECODE函数将该数值与后面的一系列的偶序相比较,以决定返回值。
value1是一组成序偶的数值。如果输入数值与之匹配成功,则相应的结果将被返回。对应一个空的返回值,可以使用关键字NULL于之对应
result1 是一组成序偶的结果值。
default_result 未能与任何一个值匹配时,函数返回的默认值。
例如:
selectdecode( x , 1 , ‘x is 1 ’, 2 , ‘x is 2 ’, ‘others’) from dual
当x等于1时,则返回‘x is 1’。
当x等于2时,则返回‘x is 2’。
否则,返回others’。
需要,比较2个值的时候,可以配合SIGN()函数一起使用。
SELECT DECODE( SIGN(5 -6), 1 'Is Positive', -1, 'Is Nagative', 'Is Zero')
同样,也可以用CASE实现:

SELECT CASE SIGN(5 - 6)

            WHEN  1  THEN  'Is Positive'

            WHEN -1 THEN  'Is Nagative'

            ELSE 'Is Zero' END

            FROM DUAL

此外,还可以在Order by中使用Decode。
例如:表table_subject,有subject_name列。要求按照:语、数、外的顺序进行排序。这时,就可以非常轻松的使用Decode完成要求了。
select * from table_subject order by decode(subject_name, '语文', 1, '数学', 2, , '外语',3)(责任编辑:卢兆林)
分享到:
评论

相关推荐

    Oracle与Mysql差异说明.doc

    3. DECODE 和 CASE WHEN:Oracle 的 DECODE 函数在条件判断中提供简洁的语法,但在 MySQL 中,你需要使用 CASE WHEN THEN END 结构来实现相同功能。 4. TO_DATE 和 STR_TO_DATE:Oracle 的 TO_DATE 函数将字符串...

    mysql与oracle差异总结

    MySql 中的 CASE WHEN 语句可以替换 DECODE 函数。MySql 中的 TEXT 等同于 Oracle 中的 LONG 函数。 13. 日期函数 MySql 中的 EXTRACT 函数可以提取日期的年、月、日等信息,而 Oracle 需要使用 TO_CHAR 函数来...

    Oracle到mysql转换的问题总结.docx

    - Oracle的`DECODE`函数在MySQL中可以使用`CASE WHEN`表达式替代。 6. **窗口函数和行号**: - Oracle的`ROW_NUMBER() OVER(PARTITION BY ... ORDER BY ...)`窗口函数在MySQL中没有直接对应项,但可以使用用户...

    Oracle到mysql转换的问题总结要点.doc

    - `DECODE`函数:Oracle的`DECODE`在MySQL中可以用`CASE WHEN`语句替代。 - 序列化函数:Oracle的`ROW_NUMBER() OVER(PARTITION BY ... ORDER BY ...)`在MySQL中需使用用户变量模拟,如示例所示。 - 行号`ROWNUM`...

    Oracle到mysql转换的问题总结.doc

    - Oracle 的 `DECODE` 函数在 MySQL 中可以使用 `CASE WHEN` 语句来实现。 - Oracle 的 `ROW_NUMBER() OVER(PARTITION BY ... ORDER BY ...)` 可以用 MySQL 的用户变量和子查询来模拟分组排序后的行号。 6. **...

    Oracle到mysql转换的问题总结[收集].pdf

    - Oracle的`DECODE`函数在MySQL中可以用`CASE WHEN`语句替换。 - Oracle的窗口函数`ROW_NUMBER() OVER(PARTITION BY ... ORDER BY ...)`在MySQL中无法直接使用,需要借助用户变量来模拟。 - Oracle的行号`ROWNUM`...

    超详细Oracle教程.pdf

    此次合并不仅加强了Oracle在数据库领域的领导地位,还为其带来了MySQL这一开源数据库资源,有助于Oracle更好地服务中小型企业市场。 #### 第一章 数据库基础 - **基础知识概述**:介绍数据库的基本概念,包括数据库...

    Oracle数据库学习指南

    1. Decode()函数使用技巧(NT+IIS+ASP+ORACLE) 2. Dual伪列 3. EXP、IMP 命令详解 4. Exp-Imp大量数据 5. Export-Import 使用技巧与常见错误 6. NULL 使用详解 7. Oracle for NT系统实用工具介绍 8. Oracle ...

    mysql仿oracle的decode效果查询

    本文将详细介绍如何在MySQL中模拟Oracle的`DECODE`函数,并探讨不同数据库系统中的查询差异。 首先,Oracle的`DECODE`函数可以理解为一个简单的条件判断表达式,它允许我们在一个查询中根据指定的条件返回不同的列...

    使用Decode运算符.rar

    - `Decode` 只在某些特定的数据库系统中可用,如Oracle,而在其他系统,如MySQL或PostgreSQL中可能需要使用 `CASE` 或其他方式来实现类似功能。 - 由于其简单的结构,`Decode` 可能不如 `CASE` 易于理解和维护,...

    MYSQL,SQLSERVER,ORACLE常用的函数

    根据提供的标题和描述,本文将详细介绍在MySQL、SQL Server以及Oracle数据库中常用的函数。这些函数主要分为几大类:字符串处理函数、数值处理函数、日期处理函数、转换函数以及其他一些特殊用途的函数。 ### 字符...

Global site tag (gtag.js) - Google Analytics