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函数的几种用法的更多相关文章

  1. Mysql中decode函数的几种用法

    1.使用decode判断字符串是否一样 decode(value,if1,then1,if2,then2,if3,then3,...,else) 含义为 IF 条件=值1 THEN RETURN(va ...

  2. getline()函数的两种用法

    getline()函数的输入流对象可以是标准输入流对象cin,也可以是一个文件输入流对象fin; (1)输入流对象的成员函数(有三个参数,一般除非需要自己选定停止符,并不推荐使用): basic_is ...

  3. jQuery中$()函数的7种用法汇总

    前言 jQuery对象是一个类数组的对象,含有连续的整形属性以及一系列的jQuery方法.它把所有的操作都包装在一个jQuery()函数中,形成了统一(也是惟一)的操作入口.其中我们用的非常频繁的一个 ...

  4. PHP回调函数的几种用法

    PHP回调函数的实现方法 目录 前言      全局函数的回调      类静态函数的回调      对象的方法的回调      PHP事件模型(观察者模式)的实现思路    前言 最近在开发一个PH ...

  5. JS函数的几种用法

    1.正常使用:

  6. Shell函数的7种用法介绍

    1. 在shell文件内部定义函数并引用: 复制代码代码如下: [~/shell/function]# cat factorial.sh #!/bin/bashfunction factorial{f ...

  7. underscore函数存在两种用法

    var _ = require('underscore'); var a = {"a": 1, "b": 2}; console.log(_(a).size() ...

  8. js 函数arguments一种用法

    无意改同事的代码发现的 function toggle(){ var _arguments=arguments; var count=0; $("#more").click(fun ...

  9. Oracle 中 decode 函数用法

    Oracle 中 decode 函数用法 含义解释:decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下:IF 条件=值1 THEN RETURN(翻译 ...

随机推荐

  1. 缩放手势 ScaleGestureDetector 源码解析,这一篇就够了

    其实在我们日常的编程中,对于缩放手势的使用并不是很经常,这一手势主要是用在图片浏览方面,比如下方例子.但是(敲重点),作为 Android 入门的基础来说,学习 ScaleGestureDetecto ...

  2. C# RESTful API 访问辅助类

    REST 全称是 Representational State Transfer,有人说它是一种风格,并非一种标准,个人觉得挺有道理.它本身并没有创造新的技术.组件与服务,更像是告诉大家如何更好地使用 ...

  3. 系统学习 Java IO (五)----使用 SequenceInputStream 组合多个流

    目录:系统学习 Java IO---- 目录,概览 SequenceInputStream 可以将两个或多个其他 InputStream 合并为一个. 首先,SequenceInputStream 将 ...

  4. 【Mysql】重启: mysql.service: Service hold-off time over, scheduling restart.

    参考链接:http://sharong.iteye.com/blog/2262760 重启mysql服务器 (/etc/init.d/mysql stop  /etc/init.d/mysql sta ...

  5. 微信小程序ES6方法Promise封装接口

    为何要封装接口? 有小程序开发的经验者,相信对微信API Request很熟悉了.对接接口时,有大部分的开发者都是直接调用request方法,去请求后台接口并渲染数据.诚然,直接使用api发起请求对接 ...

  6. 18 | 眼前一亮:带你玩转GUI自动化的测试报告

  7. Python爬虫入门:爬取豆瓣电影TOP250

    一个很简单的爬虫. 从这里学习的,解释的挺好的:https://xlzd.me/2015/12/16/python-crawler-03 分享写这个代码用到了的学习的链接: BeautifulSoup ...

  8. scrapy基础知识之 使用FormRequest.from_response()方法模拟用户登录:

    通常网站通过 实现对某些表单字段(如数据或是登录界面中的认证令牌等)的预填充 使用Scrapy抓取网页时,如果想要预填充或重写像用户名.用户密码这些表单字段, 可以使用 FormRequest.fro ...

  9. webpack4基础入门操作(一)

    基于webpack4实践:开始:打开控制面板,制定到创建Webpack的文件夹. 并创建初始配置文件package.json 输入命令:npm init -y,在文件夹中出现一个package.jso ...

  10. java高并发系列-第1天:必须知道的几个概念

    java高并发系列-第1天:必须知道的几个概念 同步(Synchronous)和异步(Asynchronous) 同步和异步通常来形容一次方法调用,同步方法调用一旦开始,调用者必须等到方法调用返回后, ...