1、DECODE函数是ORACLE PL/SQL是功能强大的函数之一。
2、函数涵义:
网上摘录如下:
DECODE的语法:DECODE(value,if1,then1,if2,then2,if3,then3,...,else),表示如果value 等于if1时,DECODE函数的结果返回then1,...,如果不等于任何一个if值,则返回else。
3、例子:
3.1 可以看成是case when的简写版,如下:
数据结构
CREATE TABLE USERS (ID INTEGER NOT NULL, NAME VARCHAR2(20), SEX CHAR(1), HEIGHT NUMBER(16,2), PRIMARY KEY (ID));
(sex:1-男,2-女,height:身高)
* > select * from users;
------------------------------
id name sex height
1 jack 1 1.78
2 lily 2 1.6
3 amma 2 1.58
4 kimi 1 1.7
将sex转义为中文:
* > select id,name,decode(sex,'1','男','2','女','未知') as sex,height from users;
------------------------------
id name sex height
1 jack 男 1.78
2 lily 女 1.6
3 amma 女 1.58
4 kimi 男 1.7
3.2 行转列
数据结构同3.1
需求:现要统计,用户(users)表的男女生的数量,传统的写法如下:
* > select decode(sex,'1','男生合计数','2','女生合计数','未知') as sex,count(*) as numb from users group by sex;
------------------------------
sex numb
男生合计数 2
女生合计数 2
***** 这样有个缺点,就是变成了两行数据,但如果我想变成一行数据呢?即把男女生的合计数,并成一行,那么,就要灵活运用DECODE()函数,和sum()函数,如下:
* > select sum(decode(sex,'1','1')) as 男生合计数,sum(decode(sex,'2','1')) as 女生合计数 from users;
------------------------------
男生合计数 女生合计数
2 2
3.3 行转列,DECODE()函数配合AVG()函数。
**** 需求:统计男女生的平均身高。
* > select avg(decode(sex,'1',height)) as 男生平均身高,avg(decode(sex,'2',height)) as 女生平均身高 from users;
------------------------------
男生平均身高 女生平均身高
1.74 1.59
分享到:
相关推荐
关于oracle decode函数的用法
Oracle DECODE函数功能很强,下面就为您详细介绍Oracle DECODE函数的用法,希望可以让您对Oracle DECODE函数有更多的了解。 Oracle DECODE函数 Oracle DECODE函数是Oracle公司独家提供的功能,它是一个功能很强的...
Oracle中Decode()函数使用技巧
Oracle中Decode()函数使用技巧Oracle中Decode()函数使用技巧Oracle中Decode()函数使用技巧
oracle中decode()函数使用技巧 很有帮助的哦
decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值) 该函数的含义如下: IF 条件=值1 THEN RETURN(翻译值1) ELSIF 条件=值2 THEN RETURN(翻译值2) ...... ELSIF 条件=值n THEN RETURN(翻译值n) ...
DECODE函数相当于一条件语句(IF).它将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值。
Oracle中Decode()函数的有关用法Oracle中Decode()函数的有关用法
主要介绍了oracle中decode函数的使用方法,需要的朋友可以参考下
主要介绍了oracle中decode函数的使用方法示例,还是比较不错的,这里分享给大家,供需要的朋友参考。
使用DECODE实现统计,是比较常用的。 但是在遇到需要组合条件进行统计时,有时却不如case when 或者另建视图好用。 可是有时就想用DECODE,咋办? 这里给大家介绍一下DECODE如何实现组合条件查询,一句SQL查询一张...
NULL 博文链接:https://lisanlai.iteye.com/blog/793404
DECODE()函数,它将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值。区别于SQL的其它函数,DECODE函数还能识别和操作空值。本文详细介绍了DECODE函数的语法。
博客:PostgreSQL的学习心得和知识总结(四十四)|语法级自上而下完美实现Oracle数据库DECODE函数的实现方案(GreenPlum & AntDB)
本文讲述了Oracle-Decode()函数和CASE语句的比较。
Decode函数的语法结构如下: decode (expression, search_1, result_1) decode (expression, search_1, result_1, search_2, result_2) decode (expression, search_1, result_1, search_2, result_2, ...., ...
今天上头要求做一个类似的功能,初步想到的列转行,但是如何实现也没有什么好办法,这个函数不错DECODE函数是ORACLE PL/SQL是功能强大的函数之一,目前还只有ORACLE公司的SQL提供了此函数,其他数据库厂商的SQL实现...