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

article/2025/11/4 8:13:02

        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; 命令查看。


http://chatgpt.dhexx.cn/article/dFhOrqyP.shtml

相关文章

matlab中sign函数的使用(提取符号)

仅用于记录自己学习过程中遇到的函数 matlab中sign函数的使用&#xff0c;提取符号 一、语法 Y sign(x) 返回与 x 大小相同的数组 Y&#xff0c;其中 Y 的每个元素是&#xff1a; 1&#xff0c;前提是 x 的对应元素大于 0。 0&#xff0c;前提是 x 的对应元素等于 0。 -1&am…

R语言使用符号函数计算数据的正负特性、sign函数计算数据的正负符号返回0、1、-1

R语言使用符号函数计算数据的正负特性、sign函数计算数据的正负符号返回0、1、-1 目录 R语言使用符号函数计算数据的正负特性、sign函数计算数据的正负符号返回0、1、-1 R 语言特点 R语言使用符号函数计算数据的正负特性、sign函数计算数据的正负符号返回0、1、-1 R可以在CR…

c语言中sign的用法,Excel教程中sign函数用法和实例详解

第一&#xff0c;sign函数用法说明 excel教程中sign函数用于返回数字的符号。正数为1&#xff0c;零为0&#xff0c;负数为-1。 sign函数语法&#xff1a;SIGN(number) SIGN符号函数(一般用sign(x)表示)是很有用的一类函数&#xff0c;其功能是取某个数的符号(正负零)&#xff…

R语言sign函数判断数值为正数或者负数实战

R语言sign函数判断数值为正数或者负数实战 目录 R语言sign函数判断数值为正数或者负数实战 #基本语法 #正负数判断 #基本语法 sign(5) # Basic R syntax of sign function #正负数判断 sign(-2:5) # Apply sign function # -1 -1 0 1 1 1 1 1 参…

matlab2c使用c++实现matlab函数系列教程-sign函数

全栈工程师开发手册 &#xff08;作者&#xff1a;栾鹏&#xff09; matlab2c动态链接库下载 matlab库函数大全 matlab2c基础教程 matlab2c开发全解教程 matlab2c调用方法&#xff1a; 1、下载动态链接库 2、将Matlab2c.dll拷贝到exe同目录下 3、将Matlab2c.h、Matlab2c.lib放…

matlab中sign函数用法

sign本身就有就有符号标志之意.故sign为符号函数&#xff01; sign(整数)1; sign(负数)-1; sign&#xff08;零&#xff09;0&#xff1b; matlab运行例子&#xff1a;

mysql中sign函数_Oracle中sign函数和decode函数的使用

在逻辑编程中&#xff0c;经常用到If ndash; Then ndash;Else 进行逻辑判断。在DECODE的语法中&#xff0c;实际上就是这样的逻辑处理过程。它的语法 1.比较大小函数SIGN sign(x)或者Sign(x)叫做符号函数&#xff0c;其功能是取某个数的符号(正或负)&#xff1a; 当x>0&…

c语言中sign的用法,sign函数用法和实例详解

内容提要&#xff1a;本文从用法和实例入手&#xff0c;介绍了Excel中sign函数的应用。 第一&#xff0c;sign函数用法说明 sign函数用于返回数字的符号。正数为1&#xff0c;零为0&#xff0c;负数为-1。 sign函数语法&#xff1a;SIGN(number) SIGN符号函数(一般用sign(x)表示…

【Python】Numpy库之符号函数sign()的介绍及用法

转载&#xff1a;https://blog.csdn.net/lyq_12/article/details/86645425 1、sign()函数功能介绍 sign()是Python的Numpy中的取数字符号&#xff08;数字前的正负号&#xff09;的函数。 2、sign()函数用法代码演示 #导入numpy库 import numpy as np#输入数据 dataArr [-0…

Opencv实现Sift、Surf、ORB特征提取与匹配

在opencv3中&#xff0c;这三个算子都转移到一个名为xfeature2d的第三方库中&#xff0c;而在opencv2中这三个算子在nonfree库中。 关于在vs下配置opencv可参考我转载的另外一篇文章。注意版本号不一样修改对应的lib就好了。 一.SIFT Scale Invariant Feature Transform(SIFT)…

CDA学习之Pandas - 常用函数和75个高频操作

目录 一、函数1.1 常用函数1.1.1 导⼊数据1.1.2 导出数据1.1.3 查看数据1.1.4 数据选取1.1.5 数据处理1.1.6 数据分组和排序1.1.7 数据合并1.1.8 数据显示 1.2 函数列表1.2.1 统计汇总函数1.2.2 数据清洗函数1.2.3 数据筛选函数1.2.4 绘图与元素级运算函数1.2.5 时间序列函数1.…

基于DCT离散余弦变换的自适应水印算法的设计

文章目录 前言一、目的和需求分析1.1项目设计目的1.2项目需求分析 二、图像预处理2.1 图像预处理的作用2.2 Logistic混沌映射置乱2.2 细胞自动机处理均值滤波平滑处理 三、自适应水印算法设计3.1 JPEG量化矩阵3.2 DCT频率敏感度矩阵3.3 自适应频带选择3.4 水印算法定义3.4.1 水…

线性代数知识

一、行列式&#xff08;数&#xff09; 1.性质(对行、列都成立) 1.转置值不变2.互换两行&#xff0c;值变号3.两行元素完全相同&#xff0c;值为04.行列式某一行元素加上另一行对应元素的k倍&#xff0c;D不变。5.某一行元素与另一行元素的代数余子式的乘积之和06.用数k乘&quo…

计算机组成原理<五>——存储系统

Train yourself to let go of everything you fear to lose. ​存储系统基本概念 ​存储器的层次结构 ​存储器的分类 ​存储器的性能指标 ​主存储器的基本组成 ​基本的半导体元件及原理 ​存储器芯片的基本原理 ​ ​寻址 ​DRAM和SRAM ​存储元件不同导致的特性…

学成在线项目开发技巧整理---第一部分

学成在线项目开发技巧整理---第一部分 1.数据字典2.http-client远程测试插件,可以保存测试数据3.三种跨域解决4.具有多层级数据查询思路5.Mybaits分页插件原理6.根据文件后缀解析出mime-type7.大文件上传8.Spring事务什么时候会失效9.分布式文件系统MinIo10.构建独立文件系统11…

分治法的应用(大整数乘法和Strassen矩阵乘法,最近点对问题和凸包问题)

转自&#xff1a;http://www.cnblogs.com/kkgreen/archive/2011/06/12/2078668.html 参考 《算法设计与分析》  第四章 分治法 Anany Levitin著 翻译版 清华大学出版社 在上一篇文章中&#xff0c;介绍了分治策略的思想&#xff0c;主定理&#xff0c;以及几个用…

【连载】线性代数笔记——第二章矩阵2

我是灼灼&#xff0c;一只初学Java的大一金渐层。 向往余秀华和狄兰托马斯的疯狂&#xff0c;时常沉溺于将情感以诗相寄&#xff1b;追逐过王尔德、王小波的文字&#xff0c;后陷于毛姆和斯蒂芬金不可自拔&#xff1b;热爱文学的浪潮&#xff0c;白日梦到底却总在现实里清醒&am…

2022高等代数笔记整理

2022高等代数笔记-b站宋浩 基本内容笔记 基本内容 01.二阶行列式 02.三阶行列式 03.排列与逆序 04.奇排列和偶排列 05.对换 06.n阶行列式 07.特殊行列式 08.行列式的性质 09.余子式 10.代数余子式 11.行列式按某一行(列)展开 12.行列式按一行展开 13.异乘变零定理 14.拉普拉斯…

高斯消元法java语言设计_高斯消元法(Gauss Elimination)【超详解模板】

高斯消元法&#xff0c;是线性代数中的一个算法&#xff0c;可用来求解线性方程组&#xff0c;并可以求出矩阵的秩&#xff0c;以及求出可逆方阵的逆矩阵。 高斯消元法的原理是&#xff1a; 若用初等行变换将增广矩阵 化为 &#xff0c;则AX B与CX D是同解方程组。 所以我们可…

js倒计时案例

核心思想&#xff1a;用输入时间的时间戳减去现在时间的时间戳即为倒计时的时间总毫秒数&#xff0c;实现js的倒计时效果 注&#xff1a;new Date() js在某个数据类型前使用"",是为了将该数据类型转化为Number型&#xff1b; new Date()返回的是标准时间&#xff1a;…