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
select empno,
decode(empno,7369,'smith',7499,'allen',7521,'ward',7566,'jones','unknow')
as name from emp where rownum<=10

2:使用decode比较大小
select decode(sign(var1-var2),-1,var1,var2) from dual
sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1
select decode(sign(100-90),-1,100,90) from dual

select decode(sign(100-90),1,100,90) from dual

3:使用decode函数分段
工资大于5000为高薪,工资介于3000到5000为中等,工资小于3000为低薪
SELECT
ename,sal,
DECODE(SIGN(sal - 5000),
1,
'high sal',
0,
'high sal',
- 1,
DECODE(SIGN(sal - 3000),
1,
'mid sal',
0,
'mid sal',
- 1,
DECODE(SIGN(sal - 1000),
1,
'low sal',
0,
'low sal',
- 1,
'low sal')))
FROM
emp

4:利用decode实现表或者视图的行列转换
SELECT
SUM(DECODE(ENAME,'SMITH',SAL,0)) SMITH,
SUM(DECODE(ENAME,'ALLEN',SAL,0)) ALLEN,
SUM(DECODE(ENAME,'WARD',SAL,0)) WARD,
SUM(DECODE(ENAME,'JONES',SAL,0)) JONES,
SUM(DECODE(ENAME,'MARTIN',SAL,0)) MARTIN FROM EMP

5:使用decode函数来使用表达式来搜索字符串
decode (expression, search_1, result_1, search_2,
result_2, ...., search_n, result_n, default)
decode函数比较表达式和搜索字,如果匹配,返回结果;如果不匹配,返回default值;如果未定义default值,则返回空值。
SELECT
ENAME,
SAL,
DECODE(INSTR(ENAME, 'S'),
0,
'不含有s',
'含有s') AS INFO
FROM
EMP

比如我要查询某班男生和女生的数量分别是多少?
通常我们这么写:
select count(*) from 表 where 性别 = 男;
select count(*) from 表 where 性别 = 女;
要想显示到一起还要union一下,太麻烦了
用decode呢,只需要一句话
select sum(decode(性别,男,1,0)),sum(decode(性别,女,1,0)) from 表
decode函数的几种用法的更多相关文章
- Mysql中decode函数的几种用法
1.使用decode判断字符串是否一样 decode(value,if1,then1,if2,then2,if3,then3,...,else) 含义为 IF 条件=值1 THEN RETURN(va ...
- getline()函数的两种用法
getline()函数的输入流对象可以是标准输入流对象cin,也可以是一个文件输入流对象fin; (1)输入流对象的成员函数(有三个参数,一般除非需要自己选定停止符,并不推荐使用): basic_is ...
- jQuery中$()函数的7种用法汇总
前言 jQuery对象是一个类数组的对象,含有连续的整形属性以及一系列的jQuery方法.它把所有的操作都包装在一个jQuery()函数中,形成了统一(也是惟一)的操作入口.其中我们用的非常频繁的一个 ...
- PHP回调函数的几种用法
PHP回调函数的实现方法 目录 前言 全局函数的回调 类静态函数的回调 对象的方法的回调 PHP事件模型(观察者模式)的实现思路 前言 最近在开发一个PH ...
- JS函数的几种用法
1.正常使用:
- Shell函数的7种用法介绍
1. 在shell文件内部定义函数并引用: 复制代码代码如下: [~/shell/function]# cat factorial.sh #!/bin/bashfunction factorial{f ...
- underscore函数存在两种用法
var _ = require('underscore'); var a = {"a": 1, "b": 2}; console.log(_(a).size() ...
- js 函数arguments一种用法
无意改同事的代码发现的 function toggle(){ var _arguments=arguments; var count=0; $("#more").click(fun ...
- Oracle 中 decode 函数用法
Oracle 中 decode 函数用法 含义解释:decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下:IF 条件=值1 THEN RETURN(翻译 ...
随机推荐
- vue结合Ant Design实现后台系统的权限分配(支持无限子级嵌套)
最近公司的业务需要,要做一个后台管理系统的管理系统类似于这样子 功能需求如下: 左边是权限菜单,右边对应的是具体权限. 1.父级权限菜单选中,父级权限菜单的权限包括其中所有子级权限菜单的权限也要选中, ...
- LR编写Socket脚本方法2(从文件读取报文)
之前,给大家分享了LoadRunner编写socket协议脚本的基本方法与规则,今天给大家分享下,如何从本地文件,读取内容,并作为报文,发送到服务端:该方法也是在工作中遇到的一个难点,想通过这种方 ...
- BootStrap4.0Demo+轮播素材记录
整理一些关于前端的东西: BootStrap4.0Demo: 官方DEMO:http://code.z01.com/v4/components/carousel.html 下午翻了点不错的轮播素材: ...
- 22 | 从0到1:API测试怎么做?常用API测试工具简介
- 巧妙解决element-ui下拉框选项过多的问题
1. 场景描述 不知道你有没有这样的经历,下拉框的选项很多,上万个选项甚至更多,这个时候如果全部把数据放到下拉框中渲染出来,浏览器会卡死,体验会特别不好 用人会说element-ui的select有一 ...
- Qt之股票组件-自选股--列表可以拖拽、右键常用菜单
目录 一.开头嘴一嘴 二.效果展示 三.自选股列表 1.列表初始化 2.添加Item 3.右键菜单 4.拖拽Item 5.刷新数据 四.相关文章 原文链接:Qt之股票组件-自选股--列表可以拖拽.右键 ...
- 前端Web浏览器基于Flash如何实时播放监控视频画面(前言)之流程介绍
[关键字:前端浏览器如何播放RTSP流画面.前端浏览器如何播放RTMP流画面] 本片文章只是起到抛砖引玉的作用,能从头到尾走通就行,并不做深入研究.为了让文章通俗易懂,尽量使用白话描述. 考虑到视频延 ...
- Git 安装教程(2.21.0)
获取安装包地址 1.官网(较慢):https://git-scm.com/downloads 2.下载链接:http://down-ww3.newasp.net/pcdown/soft/soft1/g ...
- HDU 1007:Quoit Design(分治求最近点对)
http://acm.hdu.edu.cn/showproblem.php?pid=1007 题意:平面上有n个点,问最近的两个点之间的距离的一半是多少. 思路:用分治做.把整体分为左右两个部分,那么 ...
- 字符串匹配Boyer-Moore算法:文本编辑器中的查找功能是如何实现的?---这应该讲的最容易懂的文章了!
关于字符串匹配算法有很多,之前我有讲过一篇 KMP 匹配算法:图解字符串匹配 KMP 算法,不懂 kmp 的建议看下,写的还不错,这个算法虽然很牛逼,但在实际中用的并不是特别多.至于选择哪一种字符串匹 ...