Oracle Decode 函数用法 Count函数条件统计 Sign 函数用法 Case When 函数

一、概述

1、本文系统的整理了,Oracle中常见的几个函数用法,都是涉及到条件判断分支类的相关函数,分别是 CASE ..WHEN ; DECODE , SIGN

2、假设有一张表Student ,有4个字段, ID,NAME,GENDER,AGE ,分别是 编号,姓名,性别,年龄。数据内容如下:

二、CASE WHEN 函数

1、简单版, 语法规则如下:

CASE col WHEN val1 THEN res1WHEN val2 THEN res[ELSE def] -- 可选
END ;

1.2、简单版 示例:

SELECT
CASE s.GENDER WHEN '1' THEN '男'WHEN '0' THEN '女'ELSE 'LGBT'
END AS "性别" ,
s.* FROM STUDENT s ;

2、完整版(case 搜索函数), 语法规则如下:

CASE  WHEN col=val1  THEN res1WHEN col=val2  THEN res[ELSE def] -- 可选
END ;

2.2、完整版 示例:

SELECT
CASE WHEN  s.GENDER ='1' THEN '男'WHEN  s.GENDER='0' AND s.ID = '3' THEN '女' ELSE 'LGBT'
END AS GENDER  ,
s.* FROM STUDENT s ;

三、DECODE 函数

1、关于DECODE 函数的介绍,请自行查找资料,语法规则如下:

DECODE(val, if1,then1 ,if2 ,then2 ... [default]) ;
-- 注意:default 可选的

2、DECODE 示例:

SELECT DECODE(s.GENDER,'1','男','0','女') ,DECODE(s.GENDER,'1','男','0','女','LGBT') , -- 使用default 值DECODE(s.GENDER,'1',DECODE(s.ID,'1','大帅比'),'0','女') , -- 使用decode 嵌套
s.* FROM STUDENT s ;

四、SIGN 函数

1、Oracle 中SIGN函数的作用是:对于数字的判断,根据判断会得到三种结果,如下:

> 0 ; 返回 1
= 0 ; 返回 0
< 0 ; 返回 -1

2、SIGN 函数示例:

SELECT SIGN(100) ,SIGN(0) ,SIGN(-123)
FROM DUAL ;

3、SIGN 函数和DECODE 函数组合使用:

SELECT DECODE(sign(11),1,'正数'),DECODE(SIGN(0),'0','零') ,DECODE(SIGN(-333),'-1','负数')
FROM DUAL ;

4、sign 报错:ORA-01722: 无效数字:

SELECT SIGN('tt') FROM dual ;

五、COUNT 函数分条件统计

1、在【一、概述】中,Student 表有三条数据,现在需求是,统计出总人数,分别统计男、女人数(男1,女0),用一条SQL写出来,该怎么做呢? 假设目标表头如下:

2、可以使用 COUNT + DECODE 组合进行数量统计,SQL结果如下:

SELECT COUNT(s.ID) AS "总人数",COUNT(DECODE(s.GENDER, '1', s.ID)) "男" ,COUNT(DECODE(s.GENDER, '0', s.ID)) AS "女"
FROM STUDENT s ;

六、总结

1、本文简单的记录了Oracle中几个条件判断函数的用法,详细的用法资料,可以自行逐个查找。 其中 部分函数在 Oracle和MySQL中是通用的。 如: SIGN , CASE WHEN , COUNT , 其中 decode 函数,在MySQL中不适用(版本是5.7.32)

2、本文中示例代码,所在Oracle版本是: CORE 11.2.0.1.0 Production ,可以使用: select * from v$version; 命令查看。

Oracle Decode 函数用法 Count函数条件统计 Sign 函数用法 Case When 函数相关推荐

  1. mysql多条件count_Mysql中使用count加条件统计

    Mysql中使用count加条件统计  0  753 坚持奋斗 2019/6/28 13:19:56 江苏 南京 新建一个Mysql数据表a,包含id和num两个字段 [pre] mysql> ...

  2. 使用函数统计指定数字的个数_四种函数方法实现按条件统计一个区间数字的个数...

    有学员问,如何实现按条件计数求和,包括单条件和多条件.下面举个小例,介绍四种excel函数公式的实现方法. 问题如图,要统计A2:A20区间1-3(>1,<3)的数字个数. 按照我的函数课 ...

  3. count 有条件 mysql_【笔记】Mysql中使用count加条件统计

    前言mysql 最近发如今处理Mysql问题时,count()函数频繁上镜,经常出如今分组统计的情景下,可是有时候并非使用group by分好组就能够直接统计了,好比说一个常见的需求,统计每一个班级男 ...

  4. Mysql中使用count加条件统计

    文章目录 前言 测试环境 准备工作 条件统计 总结 前言 最近发现在处理Mysql问题时,count()函数频繁上镜,常常出现在分组统计的情景下,但是有时候并不是使用group by分好组就可以直接统 ...

  5. excel if函数 android,Excel函数公式:多条件判断你还在用If函数来实现,那就真的Out了...

    IF函数虽然简单好用,但是如果条件多了,写起来非常的麻烦,而且容易出错,后期也不好维护.如果嵌套次数超过3次,建议选用其他函数替代,例如IFS函数,或Choose函数. 一.需求分析及实现方法. 目的 ...

  6. SQL语句中:简单Case函数和Case搜索函数

    Case具有两种格式. 简单Case函数和Case搜索函数. --简单Case函数 CASE sexWHEN '1' THEN '男'WHEN '2' THEN '女' ELSE '其他' END - ...

  7. 简单Case函数和Case搜索函数的区别

    简单Case函数和Case搜索函数的区别 Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' TH ...

  8. 简单Case函数和Case搜索函数。

    Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END ...

  9. SQL语句中 Case具有两种格式:简单Case函数和Case搜索函数

    转自:http://blog.csdn.net/IBM_hoojo/article/details/5546868 Case具有两种格式.简单Case函数和Case搜索函数.  --简单Case函数 ...

最新文章

  1. uva-10954-贪心
  2. quick cocos2d-x 使用CCTableView 例子
  3. keil 5 出现 error:  #67: expected a } 错误解决
  4. python替换excel指定字符串_【python】替换指定内容,excel数据预处理
  5. FlaUI, 面向. NET的UI自动化库
  6. 你不知道的CDN圈内黑话有哪些?
  7. 12.当效率至关重要时,请在map::operator[]与map::insert之间谨慎作出选择
  8. 前端学习(3042):vue+element今日头条管理-用户退出
  9. android将项目添加到github,将github库作为依赖添加到Android-Studio项目中
  10. [翻译]NUnit---Explicit and Ignore Attributes(十二)
  11. pandas 提取某几列_用Pandas做数据清洗,我一般都这么干……
  12. python社区版如何下载库_pycharm社区版在哪里下载
  13. ios yytext的使html,iOS 利用YYText 实现 展开全文 功能
  14. win7快捷关闭计算机,win7关机快捷键和重启快捷键是什么?
  15. Google seo图片优化技巧
  16. 如何获取win10安装驱动
  17. 百位女星镂空装秀性感 展现的是赘肉还是性感
  18. 游戏音效制作的过程中,需要研发公司怎么配合?
  19. 实现一个avs2码流分析工具
  20. 威固新能源GO野 伊士曼旗下品牌威固加速布局新能源车后市场

热门文章

  1. FPGA学习(1)NCO产生任意三角波、方波
  2. yy神曲url解析php_YY神曲视频PHP解析调用代码
  3. 李默芳:女性管理者成功要素与中国移动公司情况分析
  4. 运用Java将图片保存到本地
  5. Docker那些不为人知的秘密
  6. /dev/null的含义
  7. 写给Android工程师的协程指南
  8. 东京乌鸦满天飞(二)
  9. spring boot 启动报Field userMapper in xxx.service.UserService required a bean of type 'wen.tian
  10. 常见15个C语言的标准库