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函数详解相关推荐

  1. Sklearn中predict_proba函数用法及原理详解

    Sklearn中predict_proba函数用法及原理详解(以logistic回归为例) 网上对predict_proba的数学原理解释的太少了,也不明确,特意总结一下,并给出有些不能用该方法的原因 ...

  2. 在python中使用关键字define定义函数_python自定义函数def的应用详解

    这里是三岁,来和大家唠唠自定义函数,这一个神奇的东西,带大家白话玩转自定义函数 自定义函数,编程里面的精髓! def 自定义函数的必要函数:def 使用方法:def 函数名(参数1,参数2,参数-): ...

  3. 函数assert()详解

    函数assert()详解: 断言assert是一个宏,该宏在<assert>中,,当使用assert时候,给他个参数,即一个判读为真的表达式.预处理器产生测试该断言的代码,如果断言不为真, ...

  4. php。defined,PHP defined()函数的使用图文详解

    PHP defined()函数的使用图文详解 PHP defined() 函数 例子 定义和用法 defined() 函数检查某常量是否存在. 若常量存在,则返回 true,否则返回 false. 语 ...

  5. python中tile的用法_python3中numpy函数tile的用法详解

    tile函数位于python模块 numpy.lib.shape_base中,他的功能是重复某个数组.比如tile(A,n),功能是将数组A重复n次,构成一个新的数组,我们还是使用具体的例子来说明问题 ...

  6. Delphi Format函数功能及用法详解

    DELPHI中Format函数功能及用法详解 DELPHI中Format函数功能及用法详解function Format(const Format: string; const Args: array ...

  7. python中的json函数_python中装饰器、内置函数、json的详解

    装饰器 装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象. 先看简单例子: def run(): time.sleep(1 ...

  8. 如何使用指向类的成员函数的指针(详解!)

    原文:如何使用指向类的成员函数的指针(详解!) 另外一篇英文参考:Member Function Pointers and the Fastest Possible C++ Delegates 我们首 ...

  9. php时间函数引入,PHP日期和时间函数的使用示例详解

    (1)查看日期函数拓展 phpinfo() phpinfo(); 打开上述页面之后,可以看到以下,证明已经安装日期拓展 浏览器输入php.net访问php的文档 (2)设置时区 方式一:修改配置文件p ...

  10. python def函数报错详解_python自定义函数def的应用详解

    这篇文章主要介绍了python自定义函数def的应用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 这里是三岁,来和大家唠唠 ...

最新文章

  1. TypeError: Class advice impossible in Python3. Use the @Implementer class decorator instead
  2. Kafka发送超过broker限定大小的消息时Client和Broker端各自会有什么异常?
  3. Angular单元测试的一个错误消息
  4. ubuntu16.04安装evo
  5. Leetcode周赛复盘——第 276 场力扣周赛
  6. 【jquery】find() 方法,filter()方法和children()方法
  7. c语言学习-利用函数指针的方法,求任意给出两个整数的x和y的和、差。
  8. python模拟抛硬币_python模拟抛硬币
  9. echarts实现3D饼图
  10. gif动图怎么制作?怎么截取视频做成gif动图?
  11. restful风格的接口设计
  12. python:命名空间学习
  13. flutter图片聊天泡泡_Flutter极致的业务封装——各类聊天气泡(一)
  14. JavaWeb-10-JavaScript高级学习笔记
  15. responserequest概述
  16. phd计算机考试,21校计算机Phd详细申请经验
  17. 【项目管理】项目中的角色
  18. go语言打印日期_ZEBRA打印机前置USB 直连扫描枪打印
  19. Email和电子邮箱一样吗?
  20. 基于python3.x的爬取马蜂窝旅游的游记照片

热门文章

  1. 按F1直接静音、在浏览器按F12没有打开开发者工具
  2. IEC61499-我们能做些什么?
  3. 【arduino传感器个人学习笔记】pulsesensor传感器和MQ-2烟雾传感器
  4. MCS:连续随机变量——WeiBull分布
  5. 开源网站:代码搜索网站
  6. r语言svr模型_R建立SVR模型,并用遗传算法优化
  7. 秋天来了,怎么吃最元气?
  8. win10 系统备份服务器,windows10系统如何备份文件,如何备份win10系统文件?
  9. Mac上的 vue网站,phpStudy 搭建的网站本地局域网访问
  10. redis 数据结构基础 (一) 字符串