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

本文详细介绍了Oracle中的CASE WHEN函数、DECODE函数、SIGN函数和COUNT函数在条件统计上的使用,通过实例演示了如何在学生表中进行性别分类、计数和逻辑判断。适合理解Oracle条件逻辑的初学者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值