DECODE函数和SIGN函数详解
SIGN函数
一、基本语法
sign是符号函数,基本语法如下:
sign(n)
如果n>0,则返回1;如果n=0,则返回0;如果n<0,则返回-1。
二、案例演示
【案例1】
select sign( 100 ),sign(- 100 ),sign( 0 ) from dual;
decode函数
一、基本语法
decode 函数基本语法如下:
decode(字段|表达式,值1,结果1,值2,结果2,...,值n,结果n,缺省值);--缺省值可以省略
说明:如果字段|表达式等于值1时,DECODE函数返回结果1 ,如果等于值2则返回结果2,…,如果等于值n返回结果n,如果不等于任何一个条件值则返回缺省值。
具体的含义解释如下:
IF 条件=值1 THENRETURN(翻译值1)ELSIF 条件=值2 THENRETURN(翻译值2)......ELSIF 条件=值n THENRETURN(翻译值n)ELSERETURN(缺省值)END IF
注:decode 函数 ,只能在select 语句中使用。
二、案例演示
【案例1】使用decode函数匹配员工姓名
SELECT employee_id,
DECODE(employee_id,
100,'Steven',
101,'Neena',
102,'Lex'
'unknow') AS first_name
FROM employees
where rownum<=5;
注:mysql没有decode函数,可以用case when函数实现。
SELECT employee_id,
(CASE WHEN employee_id=100 THEN 'Steven'
WHEN employee_id=101 THEN 'Neena'
WHEN employee_id=102 THEN 'Lex'
ELSE 'unknow'
END) AS first_name
FROM employees
ORDER BY employee_id
LIMIT 5;
【案例2】使用decode函数比较大小
输出两个数中的较小值:
select decode(sign(var1-var2),-1,var 1,var2) from dual
示例:
select decode(sign(100-90),-1,100,90) as 较小值 from dual;
【案例3】用decode函数实现以下功能:如果工资>20000,显示A级别;>15000,显示B级别;>10000,显示C级别;否则,显示D级别。
select salary, decode(sign(salary-20000),1,'A',0,'A',-1,
decode(sign(salary-15000),1,'B',0,'B',-1,
decode(sign(salary-10000),1,'C',0,'C',-1,'D'))) as 工资级别
from employees;
注:mysql没有decode函数,可以用case when函数实现。
SELECT salary,
CASE
WHEN salary>20000 THEN 'A'
WHEN salary>15000 THEN 'B'
WHEN salary>10000 THEN 'C'
ELSE 'D'
END AS 工资级别
FROM employees;
【案例4】利用decode实现表或者试图的行列转换
select e.name,e.sal from scott.emp e;
select sum(decode(e.ename,upper('smith'),sal,0)) smith,sum(decode(e.ename,upper('allen'),sal,0)) allen,sum(decode(e.ename,upper('ward'),sal,0)) ward,sum(decode(e.ename,upper('jones'),sal,0)) jones,sum(decode(e.ename,upper('martin'),sal,0)) martinfrom scott.emp e ;
【案例5】使用decode函数比较表达式和搜索字。如果匹配,返回结果;如果不匹配,返回default值;如果未定义default值,则返回空值。
select sum(decode(e.ename,upper('smith'),sal,0)) smith,sum(decode(e.ename,upper('allen'),sal,0)) allen,sum(decode(e.ename,upper('ward'),sal,0)) ward,sum(decode(e.ename,upper('jones'),sal,0)) jones,sum(decode(e.ename,upper('martin'),sal,0)) martinfrom scott.emp e ;
图片来源于网络
参考链接:
https://www.cnblogs.com/jiaxinwei/p/10252513.html
DECODE函数和SIGN函数详解相关推荐
- Sklearn中predict_proba函数用法及原理详解
Sklearn中predict_proba函数用法及原理详解(以logistic回归为例) 网上对predict_proba的数学原理解释的太少了,也不明确,特意总结一下,并给出有些不能用该方法的原因 ...
- 在python中使用关键字define定义函数_python自定义函数def的应用详解
这里是三岁,来和大家唠唠自定义函数,这一个神奇的东西,带大家白话玩转自定义函数 自定义函数,编程里面的精髓! def 自定义函数的必要函数:def 使用方法:def 函数名(参数1,参数2,参数-): ...
- 函数assert()详解
函数assert()详解: 断言assert是一个宏,该宏在<assert>中,,当使用assert时候,给他个参数,即一个判读为真的表达式.预处理器产生测试该断言的代码,如果断言不为真, ...
- php。defined,PHP defined()函数的使用图文详解
PHP defined()函数的使用图文详解 PHP defined() 函数 例子 定义和用法 defined() 函数检查某常量是否存在. 若常量存在,则返回 true,否则返回 false. 语 ...
- python中tile的用法_python3中numpy函数tile的用法详解
tile函数位于python模块 numpy.lib.shape_base中,他的功能是重复某个数组.比如tile(A,n),功能是将数组A重复n次,构成一个新的数组,我们还是使用具体的例子来说明问题 ...
- Delphi Format函数功能及用法详解
DELPHI中Format函数功能及用法详解 DELPHI中Format函数功能及用法详解function Format(const Format: string; const Args: array ...
- python中的json函数_python中装饰器、内置函数、json的详解
装饰器 装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象. 先看简单例子: def run(): time.sleep(1 ...
- 如何使用指向类的成员函数的指针(详解!)
原文:如何使用指向类的成员函数的指针(详解!) 另外一篇英文参考:Member Function Pointers and the Fastest Possible C++ Delegates 我们首 ...
- php时间函数引入,PHP日期和时间函数的使用示例详解
(1)查看日期函数拓展 phpinfo() phpinfo(); 打开上述页面之后,可以看到以下,证明已经安装日期拓展 浏览器输入php.net访问php的文档 (2)设置时区 方式一:修改配置文件p ...
- python def函数报错详解_python自定义函数def的应用详解
这篇文章主要介绍了python自定义函数def的应用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 这里是三岁,来和大家唠唠 ...
最新文章
- TypeError: Class advice impossible in Python3. Use the @Implementer class decorator instead
- Kafka发送超过broker限定大小的消息时Client和Broker端各自会有什么异常?
- Angular单元测试的一个错误消息
- ubuntu16.04安装evo
- Leetcode周赛复盘——第 276 场力扣周赛
- 【jquery】find() 方法,filter()方法和children()方法
- c语言学习-利用函数指针的方法,求任意给出两个整数的x和y的和、差。
- python模拟抛硬币_python模拟抛硬币
- echarts实现3D饼图
- gif动图怎么制作?怎么截取视频做成gif动图?
- restful风格的接口设计
- python:命名空间学习
- flutter图片聊天泡泡_Flutter极致的业务封装——各类聊天气泡(一)
- JavaWeb-10-JavaScript高级学习笔记
- responserequest概述
- phd计算机考试,21校计算机Phd详细申请经验
- 【项目管理】项目中的角色
- go语言打印日期_ZEBRA打印机前置USB 直连扫描枪打印
- Email和电子邮箱一样吗?
- 基于python3.x的爬取马蜂窝旅游的游记照片