oracle只舍不入,Oracle常用函数 - 不以物喜-不以己悲的个人空间 - OSCHINA - 中文开源技术交流社区...

本文主要是介绍oracle只舍不入,Oracle常用函数 - 不以物喜-不以己悲的个人空间 - OSCHINA - 中文开源技术交流社区...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、decode

decode(value,if1,then1,if2,then2,if3,then3,...,[default]);

如果不匹配,返回default值;如果未定义default值,则返回空值。

使用DECODE函数可以避免重复扫描相同记录或重复连接相同的表

举例:

现有一个商品销售表sale,表结构为:

month    char(6)      --月份

sell    number(10,2)   --月销售金额

现有数据为:

200001  1000

200002  1100

200003  1200

200004  1300

200005  1400

200006  1500

200007  1600

200101  1100

200202  1200

200301  1300

想要转化为以下结构的数据:

year   char(4)      --年份

month1  number(10,2)   --1月销售金额

month2  number(10,2)   --2月销售金额

month3  number(10,2)   --3月销售金额

month4  number(10,2)   --4月销售金额

month5  number(10,2)   --5月销售金额

month6  number(10,2)   --6月销售金额

month7  number(10,2)   --7月销售金额

month8  number(10,2)   --8月销售金额

month9  number(10,2)   --9月销售金额

month10  number(10,2)   --10月销售金额

month11  number(10,2)   --11月销售金额

month12  number(10,2)   --12月销售金额

578d1bf137ad1e472f3a8eeccc02fd16.png

create or replace view

v_sale(year,month1,month2,month3,month4,month5,month6,month7,month8,month9,month10,month11,month12)

as

select

substrb(month,1,4),

decode(substrb(month,5,2),'01',sell,0),

decode(substrb(month,5,2),'02',sell,0),

decode(substrb(month,5,2),'03',sell,0),

decode(substrb(month,5,2),'04',sell,0),

decode(substrb(month,5,2),'05',sell,0),

decode(substrb(month,5,2),'06',sell,0),

decode(substrb(month,5,2),'07',sell,0),

decode(substrb(month,5,2),'08',sell,0),

decode(substrb(month,5,2),'09',sell,0),

decode(substrb(month,5,2),'10',sell,0),

decode(substrb(month,5,2),'11',sell,0),

decode(substrb(month,5,2),'12',sell,0)

from A_Test;

结果:显然不符合要求

92dd05b680f01f69071999e0002322b0.png

方法二:

create or replace view

v_sale(year,month1,month2,month3,month4,month5,month6,month7,month8,month9,month10,month11,month12)

as

select

substrb(month,1,4),

sum(decode(substrb(month,5,2),'01',sell,0)),

sum(decode(substrb(month,5,2),'02',sell,0)),

sum(decode(substrb(month,5,2),'03',sell,0)),

sum(decode(substrb(month,5,2),'04',sell,0)),

sum(decode(substrb(month,5,2),'05',sell,0)),

sum(decode(substrb(month,5,2),'06',sell,0)),

sum(decode(substrb(month,5,2),'07',sell,0)),

sum(decode(substrb(month,5,2),'08',sell,0)),

sum(decode(substrb(month,5,2),'09',sell,0)),

sum(decode(substrb(month,5,2),'10',sell,0)),

sum(decode(substrb(month,5,2),'11',sell,0)),

sum(decode(substrb(month,5,2),'12',sell,0))

from A_Test

group by substrb(month,1,4);

结果:bingo

8627ab97dc63ddd433f6c6f72bd0a52c.png

举例2:

id

score

1

100

2

95

3

85

4

84

5

70

6

60

id

standard

1

优秀

2

优秀

3

优秀

4

良好

5

良好

6

及格

select id, decode(sign(score-85),1,'优秀',0,'优秀',-1,

decode(sign(score-70),1,'良好',0,'良好',-1,

decode(sign(score-60),1,'及格',0,'及格',-1,'不及格'))) standard

from A_Test;

select id,

case

when score>=85 then '优秀'

when score>=70 then '良好'

when score>=60 then '合格'

when score<60 then '不及格'

end standard

from A_Test;

2、sign

sign(value),某个值是0、正数还是负数,分别返回0、1、-1

3、字符函数

1)截取

substr(str, start, length),按字算

substrb,按字节算,一个中文2个字节,当所取长度为奇数时,则自动舍弃最后一位字节

substrc:按Unicode编码

substr2:按UCS2编码

substr4:按UCS4编码

同理,字符串查找 instr(str, findStr[, start][, 第几个匹配]) 与 instrb。

length(str)和lengthb

2)ASCII(X)  --返回字符X的ASCII码

chr(x) --CHR和ASCII是一对反函数

CONCAT(X,Y) --连接字符串X和Y

LOWER(X) --X转换成小写

UPPER(X) --X转换成大写

LTRIM(X[,TRIM_STR]) --把X的左边截去trim_str字符串,缺省截去空格

RTRIM(X[,TRIM_STR])

TRIM([TRIM_STR  FROM]X)

REPLACE(X,old,new)

TRANSLATE(string,from_str,to_str)

--TRANSLATE是REPLACE所提供的功能的一个超集.如果from_str比to_str长,那么在from_str中而不在to_str中而外的字符将从string中被删除,因为它们没有相应的替换字符. to_str不能为空.Oracle把空字符串认为是NULL,并且如果TRANSLATE中的任何参数为NULL,那么结果也是NULL.

RPAD(string1,x[,string2])

--返回在X 字符长度的位置上插入一个string2中的字符的string1。如果string2的长度要比X字符少,就按照需要进行复制。如果string2多于 X字符,则仅string1前面的X各字符被使用。如果没有指定string2,那么使用空格进行填充。X是使用显示长度可以比字符串的实际长度要长。 RPAD的行为方式与LPAD很相似,除了它是在右边而不是在左边进行填充。

INITCAP(String) --返回字符串的每个单词的第一个字母大写而单词中的其他字母小写的string

NLS_INITCAP

NLS_LOWER

NLS_UPPER

NLSSORT(string[,nlsparams])

--得到用于排序string的字符串字节.所有的数值都被转换为字节字符串,这样在不同数据库之间就保持了一致性. Nlsparams的作用和NLS_INITCAP中的相同.如果忽略参数,会话使用缺省排序.

4、数字

ABS(X)

CEIL(X)

FLOOR(X)

ROUND(X[,Y]) --X在第Y位四舍五入

TRUNC(X[,Y]) --X在第Y位截断

MOD(X,Y) --取余

POWER(X,Y) --X的Y次幂

LOG(X,Y) --X为底Y的对数

SQRT(X) --X的平方根

5、NVL(X,VALUE)

如果X为空,返回value,否则返回X

NVL2(x,value1,value2)

如果x非空,返回value1,否则返回value2

6、聚合函数

sum、avg、count、min、max

这篇关于oracle只舍不入,Oracle常用函数 - 不以物喜-不以己悲的个人空间 - OSCHINA - 中文开源技术交流社区...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/292951

相关文章

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

Kotlin 作用域函数apply、let、run、with、also使用指南

《Kotlin作用域函数apply、let、run、with、also使用指南》在Kotlin开发中,作用域函数(ScopeFunctions)是一组能让代码更简洁、更函数式的高阶函数,本文将... 目录一、引言:为什么需要作用域函数?二、作用域函China编程数详解1. apply:对象配置的 “流式构建器”最

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

Linux上设置Ollama服务配置(常用环境变量)

《Linux上设置Ollama服务配置(常用环境变量)》本文主要介绍了Linux上设置Ollama服务配置(常用环境变量),Ollama提供了多种环境变量供配置,如调试模式、模型目录等,下面就来介绍一... 目录在 linux 上设置环境变量配置 OllamPOgxSRJfa手动安装安装特定版本查看日志在

Java常用注解扩展对比举例详解

《Java常用注解扩展对比举例详解》:本文主要介绍Java常用注解扩展对比的相关资料,提供了丰富的代码示例,并总结了最佳实践建议,帮助开发者更好地理解和应用这些注解,需要的朋友可以参考下... 目录一、@Controller 与 @RestController 对比二、使用 @Data 与 不使用 @Dat

Mysql中深分页的五种常用方法整理

《Mysql中深分页的五种常用方法整理》在数据量非常大的情况下,深分页查询则变得很常见,这篇文章为大家整理了5个常用的方法,文中的示例代码讲解详细,大家可以根据自己的需求进行选择... 目录方案一:延迟关联 (Deferred Join)方案二:有序唯一键分页 (Cursor-based Paginatio

C++中::SHCreateDirectoryEx函数使用方法

《C++中::SHCreateDirectoryEx函数使用方法》::SHCreateDirectoryEx用于创建多级目录,类似于mkdir-p命令,本文主要介绍了C++中::SHCreateDir... 目录1. 函数原型与依赖项2. 基本使用示例示例 1:创建单层目录示例 2:创建多级目录3. 关键注

Python实现常用文本内容提取

《Python实现常用文本内容提取》在日常工作和学习中,我们经常需要从PDF、Word文档中提取文本,本文将介绍如何使用Python编写一个文本内容提取工具,有需要的小伙伴可以参考下... 目录一、引言二、文本内容提取的原理三、文本内容提取的设计四、文本内容提取的实现五、完整代码示例一、引言在日常工作和学