• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >oracle > oracle中decode函数的使用方法

oracle中decode函数的使用方法

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了oracle decode函数,oracle中decode函数,oracle中decode的用法,oracle中decode,oracle decode等相关知识,希望本文的分享对您有所帮助

含义解释:
decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)

该函数的含义如下:

这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值2,否则返回值3
当然值1,值2,值3也可以是表达式,这个函数使得某些sql语句简单了许多

使用方法:
1、比较大小
select decode(sign(变量1-变量2),-1,变量1,变量2) from dual; --取较小值
sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1
例如:
变量1=10,变量2=20
则sign(变量1-变量2)返回-1,decode解码结果为“变量1”,达到了取较小值的目的。

2、此函数用在SQL语句中,功能介绍如下:

Decode函数与一系列嵌套的 IF-THEN-ELSE语句相似。base_exp与compare1,compare2等等依次进行比较。如果base_exp和 第i 个compare项匹配,就返回第i 个对应的value 。如果base_exp与任何的compare值都不匹配,则返回default。每个compare值顺次求值,如果发现一个匹配,则剩下的compare值(如果还有的话)就都不再求值。一个为NULL的base_exp被认为和NULL compare值等价。如果需要的话,每一个compare值都被转换成和第一个compare 值相同的数据类型,这个数据类型也是返回值的类型。

Decode函数在实际开发中非常的有用

结合Lpad函数,如何使主键的值自动加1并在前面补0
select LPAD(decode(count(记录编号),0,1,max(to_number(记录编号)+1)),14,'0') 记录编号 from tetdmis

dir 的值是1变为0,是0则变为1

比如我要查询某班男生和女生的数量分别是多少?

通常我们这么写:

select count(*) from 表 where 性别 = 女;
</div>

要想显示到一起还要union一下,太麻烦了

用decode呢,只需要一句话

大家还可以在Order by中使用Decode。

例:表table_subject,有subject_name列。要求按照:语、数、外的顺序进行排序。这时,就可以非常轻松的使用Decode完成要求了。
</div>

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 利用函数返回oracle对象表的三种方法
  • oracle中decode函数的使用方法
  • oracle中的decode的使用介绍
  • 使用Oracle的Decode函数进行多值判断
  • Oracle Decode()函数使用技巧分享
  • Oracle DECODE函数语法使用介绍

相关文章

  • 2017-05-11CentOS命令行下装oracle 12c的方法(命令行模式安装)
  • 2017-05-11Oracle数据库性能优化技术开发者网络Oracle
  • 2017-05-11oracle用户权限、角色管理详解
  • 2017-05-11Oracle数据库的备份与恢复
  • 2017-05-11oracle sequence语句重置方介绍
  • 2017-05-11oracle快速删除重复的记录
  • 2017-05-11ORACLE DATAGUARD中手工处理日志v$archive_GAP的方法
  • 2017-05-11oracle正则表达式regexp_like的用法详解
  • 2017-05-11Oracle中死事务的检查语句
  • 2017-05-11MySQL安全性指南 (2)(转)

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • oracle指定排序的方法详解
    • Oracle 自定义split 函数实例详解
    • Oracle 8i字符集乱码问题析及其解决办法
    • EXECUTE IMMEDIATE用法小结
    • oracle跨库查询dblink的用法实例详解
    • oracle date 类型字段的处理方法
    • Oracle SQL中实现indexOf和lastIndexOf功能的思路及代码
    • Oracle 数据库自动存储管理-安装配置
    • Oracle 分析函数RANK(),ROW_NUMBER(),LAG()等的使用方法
    • Oracle的substr和instr函数简单用法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有