Oracle进阶DECODE函数使用详解
DECODE含义
decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值)
这个是decode的表达式,具体的含义解释为:
IF 条件=值1 THEN RETURN(翻译值1) ELSIF 条件=值2 THEN RETURN(翻译值2) ...... ELSIF 条件=值n THEN RETURN(翻译值n) ELSE RETURN(缺省值) END IF
DECODE的用法
这里主要说的就是decode的用法,在很多时候这个函数还是很有用的。
1.翻译值
数据截图:
需求:查询出的数据,1表示男生,2表示女生
select t.id, t.name, t.age, decode(t.sex, '1', '男生', '2', '女生', '其他') as sex from STUDENT2 t
结果:
2.decode比较大小
说明:sign(value)函数会根据value的值为0,正数,负数,分别返回0,1,-1
数据:
需求:年龄在20以上的显示20以上,20以下的显示20以下,20的显示正好20
select t.id, t.name, t.age, decode(sign(t.age - 20), 1, '20以上', -1, '20以下', 0, '正好20', '未知') as sex from STUDENT2 t
结果:
3.decode分段
数据暂无
需求:工资大于5000为高薪,工资介于3000到5000为中等,工资小于3000为底薪
select name, sal, decode(sign(sal - 5000), 1, '高薪', 0, '高薪', -1, decode(sign(sal - 3000), 1, '中等', 0, '中等', -1, '低薪')) as salname from person;
结果暂无
4.搜索字符串
数据:
需求:找到含有三的姓名
select t.id, decode(instr(t.name, '三'), 0, '姓名不含有三', '姓名含有三') as name, t.age, t.sex from STUDENT2 t
结果:
5.判断是否为空
数据:
需求:性别为空显示“暂无数据”,不为空原样输出
select t.id, t.name, t.age, decode(t.sex,NULL,'暂无数据',t.sex) as sex from STUDENT2 t
结果:
总结:decode在书写sql的时候还是挺有用的,常用的应该是1和5了吧(我猜的,因为我就是经常用这两种)
到此这篇关于Oracle进阶DECODE函数使用详解的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
Oracle 中 decode 函数用法
含义解释: decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下: IF 条件=值1 THEN RETURN(翻译值1) ELSIF 条件=值2 THEN RETURN(翻译值2) ...... ELSIF 条件=值n THEN RETURN(翻译值n) ELSE RETURN(缺省值) END IF decode(字段或字段的运算,值1,值2,值3) 这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值2,否则返回值3 当然值1
-
使用Oracle的Decode函数进行多值判断
Decode函数的语法结构如下: 复制代码 代码如下: decode (expression, search_1, result_1)decode (expression, search_1, result_1, search_2, result_2)decode (expression, search_1, result_1, search_2, result_2, ...., search_n, result_n) decode (expression, search_1, result_1
-
oracle中decode函数的使用方法示例
decode的几种用法 1:使用decode判断字符串是否一样 DECODE(value,if1,then1,if2,then2,if3,then3,...,else) 含义为 IF 条件=值1 THEN RETURN(value 1) ELSIF 条件=值2 THEN RETURN(value 2) ...... ELSIF 条件=值n THEN RETURN(value 3) ELSE RETURN(default) END IF sql测试 select empno,decode(empn
-
Oracle Decode()函数使用技巧分享
今天上头要求做一个类似的功能,初步想到的列转行,但是如何实现也没有什么好办法,这个函数不错 DECODE函数是ORACLE PL/SQL是功能强大的函数之一,目前还只有ORACLE公司的SQL提供了此函数,其他数据库厂商的SQL实现还没有此功能.DECODE有什么用途 呢? 先构造一个例子,假设我们想给智星职员加工资,其标准是:工资在8000元以下的将加20%:工资在8000元以上的加15%,通常的做法是,先选出记录 中的工资字段值? select salary into var-salary
-
Oracle DECODE函数语法使用介绍
Oracle DECODE函数功能很强,下面就为您详细介绍Oracle DECODE函数的用法,希望可以让您对Oracle DECODE函数有更多的了解. Oracle DECODE函数 Oracle DECODE函数是Oracle公司独家提供的功能,它是一个功能很强的函数.它虽然不是SQL的标准,但对于性能非常有用.到目前,其他的数据库供应商还不能提供类似DECODE的功能,甚至有的数据库的供应商批评Oracle的SQL不标准.实际上,这种批评有些片面或不够水平.就象有些马车制造商抱怨亨利.福
-
oracle中decode函数的使用方法
含义解释:decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下: 复制代码 代码如下: IF 条件=值1 THEN RETURN(翻译值1)ELSIF 条件=值2 THEN RETURN(翻译值2) ......ELSIF 条件=值n THEN RETURN(翻译值n)ELSE RETURN(缺省值)END IFdecode(字段或字段的运算,值1,值2,值3) 这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值2,否则返回值3当
-
Oracle中decode函数用法
1.decode函数的两种形式 第一种形式 含义解释: decode(条件,值1,返回值1,值2,返回值2,-值n,返回值n,缺省值) 该函数的含义如下: IF 条件=值1 THEN RETURN(翻译值1) ELSIF 条件=值2 THEN RETURN(翻译值2) ...... ELSIF 条件=值n THEN RETURN(翻译值n) ELSE RETURN(缺省值) END IF 第二种形式 decode(字段或字段的运算,值1,值2,值3) 这个函数运行的结果是,当字段或字段的运算的值
-
Oracle进阶DECODE函数使用详解
DECODE含义 decode(条件,值1,返回值1,值2,返回值2,-值n,返回值n,缺省值) 这个是decode的表达式,具体的含义解释为: IF 条件=值1 THEN RETURN(翻译值1) ELSIF 条件=值2 THEN RETURN(翻译值2) ...... ELSIF 条件=值n THEN RETURN(翻译值n) ELSE RETURN(缺省值) END IF DECODE的用法 这里主要说的就是decode的用法,在很多时候这个函数还是很有用的. 1.翻译值 数据截图: 需求
-
Oracle 自定义split 函数实例详解
Oracle 自定义split 函数 Oracle没有提供split函数,但可以自己建立一个函数实现此功能.比如"abc defg hijkl nmopqr stuvw xyz",分隔符是空格,但空格个数不定. 源代码: CREATE OR REPLACE TYPE ty_str_split IS TABLE OF VARCHAR2 (4000); CREATE OR REPLACE FUNCTION fn_var_split ( p_str IN VARCHAR2,
-
Oracle 大小写转换函数实例详解
Oracle 大小写转换函数 小写转大写UPPer 大写转小写LOWER 例: select lower(ename) from emp; select upper(ename) from emp; --是否包含字母(大写和小写) select case when regexp_like('123','.([a-z]+|[A-Z])') then '包含字母' else '不包含字母' end from dual; --是否包含小写字母 select case when regexp_like(
-
C语言学习进阶篇之万字详解指针与qsort函数
目录 前言 函数指针 代码一 代码二 函数指针数组 函数指针数组的用途 计算器的基本代码 函数指针实现简单的计算机 函数指针数组实现简单计算机 指向函数指针数组的指针 回调函数 简单的冒泡排序 冒泡排序的优化 qsort函数 qsort函数介绍 qsort实现冒泡排序 qsort排序结构数据 模拟实现qsort函数 写在最后 前言 前面学到了字符指针,指针数组是一个存储指针的数组,数组指针是一个指向函数的指针,数组参数和指针参数.其中不乏有很多需要注意的知识点,例如:&数组名和数组名表示的含义,
-
Oracle date 和 timestamp 区别详解
Oracle date 和 timestamp 区别详解 1.DATE数据类型 这个数据类型我们实在是太熟悉了,当我们需要表示日期和时间的话都会想到date类型.它可以存储月,年,日,世纪,时,分和秒.它典型地用来表示什么时候事情已经发生或将要发生. DATE数据类型的问题在于它表示两个事件发生时间间隔的度量粒度是秒.这个问题将在稍后讨论timestamp的时候被解决.可以使用TO_CHAR函数把DATE数据进行传统地包装,达到表示成多种格式的目的. SQL> SELECT TO_CHAR(da
-
Oracle的out参数实例详解
Oracle的out参数实例详解 一 概念 1.一般来讲,存储过程和存储函数的区别在于存储函数可以有一个返回值:而存储过程没有返回值. 2.过程和函数都可以通过out指定一个或多个输出行.我们可以利用out参数,在过程和函数中实现返回多个值. 3.存储过程和存储函数都可以有out参数. 4.存储过程和存储函数都可以有多个out参数. 5.存储过程可以通过out参数来实现返回值. 6.如果只有一个返回值,用存储函数:否则,就用存储过程. 二 实例 --out参数:查询某个员工姓名月薪和职位 /*
-
SQLServer中Partition By及row_number 函数使用详解
partition by关键字是分析性函数的一部分,它和聚合函数不同的地方在于它能返回一个分组中的多条记录,而聚合函数一般只有一条反映统计值的记录,partition by用于给结果集分组,如果没有指定那么它把整个结果集作为一个分组. 今天群里看到一个问题,在这里概述下:查询出不同分类下的最新记录.一看这不是很简单的么,要分类那就用Group By;要最新记录就用Order By呗.然后在自己的表中试着做出来: 首先呢我把表中的数据按照提交时间倒序出来: "corp_name"就是
-
Oracle数据操作和控制语言详解
正在看的ORACLE教程是:Oracle数据操作和控制语言详解.SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML, 数据定义语言DDL,数据控制语言DCL.其中用于定义数据的结构,比如 创建.修改或者删除数据库:DCL用于定义数据库用户的权限:在这篇文章中我将详细讲述这两种语言在Oracle中的使用方法. DML语言 DML是SQL的一个子集,主要用于修改数据,下表列出了ORACLE支持的DML语句. 插入数据 INSERT语句常常用于向表中插入行,行中可以有特殊数据字段,或者可以
-
oracle调试存储过程的过程详解
oracle如果存储过程比较复杂,我们要定位到错误就比较困难,那么可以存储过程的调试功能 先按简单的存储过程做个例子,就是上次做的存储过程(proc_test) 1.先在数据库的procedures文件找到我们之前创建存储过程 2.选中存储过程,右键弹出菜单,选择 测试 3.出现测试脚本页面,输入动态参数值,点击左上角的标志,进入调式模式 4.出现调试操作按钮界面(依次:运行 单步进入 单步跳过 单步退出 运行到下一个异常) 5.点击运行,直接获取存储过程的返回结果,点击单步进入,点击左边,进行
随机推荐
- vue.js异步上传文件前后端实现代码
- Java 中IO流字符流详解及实例
- Android获取SD卡上图片和视频缩略图的小例子
- 浅析PHP中的字符串编码转换(自动识别原编码)
- MySQL redo死锁问题排查及解决过程分析
- PHP自定义函数收代码
- Android应用中使用TabHost组件继承TabActivity的布局方法
- 布局遇到的问题 非常不错的见解
- Oracle表空间查看sql使用情况
- jQuery插件zTree实现单独选中根节点中第一个节点示例
- Apache Ant自动化脚本入门教程及常用命令介绍
- 安装ImageMagick出现error while loading shared libraries的解决方法
- Windows 2003 IIS 不支持ASP问题的解决方法
- java Arrays工具类实例详解
- 破解图片防盗链的代码(asp/php)测试通过
- 56.com视频采集接口程序(PHP)
- Windows下的Jupyter Notebook 安装与自定义启动(图文详解)
- python3+PyQt5重新实现自定义数据拖放处理
- angularjs使用gulp-uglify压缩后执行报错的解决方法
- 从java面试题了解你所模糊的数组