oracle 求和函数

oracle 求和函数,第1张

连续求和分析函数 sum(…) over(…)

NC示例:

1、select bdcode,sum(1) over(order by bdcode) aa from bd_bdinfo 

示例

原表信息

规则

sum(…) over( ),对所有行求和。

sum(…) over( order by … ), 连续求和。

sum(…) over( partition by… ),同组内所行求和。

sum(…) over( partition by… order by … ),同第1点中的排序求和原理,只是范围限制在组内。

扩展资料

oracle 数据库的特点

1、完整的数据管理功能:

1)数据的大量性

2)数据的保存的持久性

3)数据的共享性

4)数据的可靠性

2、完备关系的产品:

1)信息准则---关系型DBMS的所有信息都应在逻辑上用一种方法,即表中的值显式地表示;

2)保证访问的准则

3)视图更新准则---只要形成视图的表中的数据变化了,相应的视图中的数据同时变化

4)数据物理性和逻辑性独立准则

3、分布式处理功能:

ORACLE数据库自第5版起就提供了分布式处理能力,到第7版就有比较完善的分布式数据库功能了,一个ORACLE分布式数据库由oraclerdbms、sqlNet、SQLCONNECT和其他非ORACLE的关系型产品构成。

-Oracle数据库

nvl( ) 函数

语法:

NVL(eExpression1, eExpression2);

参数:

eExpression1, eExpression2。

如果 eExpression1 的计算结果为 null 值,则 NVL( ) 返回 eExpression2。如果 eExpression1 的计算结果不是 null 值,则返回 eExpression1。

eExpression1 和 eExpression2 可以是任意一种数据类型。如果 eExpression1 与 eExpression2 的结果皆为 null 值,则 NVL( ) 返回 NULL。

NVL( string1, replace_with)。

功能:如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值。

引申一下,此NVL的作用与SQLserver 中的 ISNULL( string1, replace_with) 一样。

注意事项:string1和replace_with必须为同一数据类型,除非显式的使用TO_CHAR函数。

例:NVL(TO_CHAR(numeric_column), 'some string') 其中numeric_column代指某个数字类型的值。

例:nvl(yanlei777,0) > 0。

NVL(yanlei777, 0) 的意思是 如果 yanlei777 是NULL, 则取 0值。

通过查询获得某个字段的合计值,如果这个值为null将给出一个预设的默认值。

扩展资料:

nvl函数例子:

select nvl(sum(tdwxhl),1)

from tb_jhde t。

就表示如果sum(tdwxhl) = NULL 就返回 1。

另一个有关的有用方法。

declare i integer。

select nvl(sum(tdwxhl),1) into i from tb_jhde t where zydm=-1这样就可以把获得的合计值存储到变量。i中,如果查询的值为null就把它的值设置为默认的1。

oracle中:

select nvl(rulescore,0) from zwjc_graderule where rulecode='FWTD';

如果记录中不存在rulecode ='FWTD'的数据则查不出数据。

select nvl(rulescore,0) into rule_score from zwjc_graderule where rulecode='FWTD';会报查不到数据的错。

select nvl(sum(rulescore),0) from zwjc_graderule where rulecode='FWTD';

如果记录中不存在rulecode ='FWTD'的数据还是可以得到一行列名为nvl(rulescore,0),值为0的数据。

select nvl(sum(rulescore),0) rule_score from zwjc_graderule where rulecode='FWTD'; 不会报错。

1、调用LOWER函数,即输入 =LOWER 。

2、设定准备转换的文本。

3、点击回车,文本中的字符自动转换。

4、向下拖拽,完成表格填充。

5、小写字母转换为大写字母,请使用UPPER函数。

6、输入UPPER函数公式。

7、通过UPPER函数,文本中的小写字母自动转换为大写字母。

lengthb(string)计算string所占的字节长度:返回字符串的长度,单位是字节

length(string)计算string所占的字符长度:返回字符串的长度,单位是字符

对于单字节字符,LENGTHB和LENGTH是一样的

如可以用length(‘string’)=lengthb(‘string’)判断字符串是否含有中文。

注:

一个汉字在Oracle数据库里占多少字节跟数据库的字符集有关,UTF8时,长度为三。

select lengthb('飘') from dual 可查询汉字在Oracle数据库里占多少字节

length函数:取字符串长度

where length(area_code)=4 :筛选 area_code 的长度为4的记录

oracle数据库中函数较多,而且每个函数都有自己的用法,所以要根据具体的函数查询具体的使用方法,比如:

decode(条件,值1,返回值1,值2,返回值2,值n,返回值n,缺省值)

这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值2,否则返回值3

当然值1,值2,值3也可以是表达式,这个函数使得某些sql语句简单了许多

使用方法:

1、比较大小

select decode(sign(变量1-变量2),-1,变量1,变量2) from dual;

--取较小值

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

例如:

变量1=10,变量2=20

则sign(变量1-变量2)返回-1,decode解码结果为“变量1”,达到了取较小值的目的。

2、此函数用在SQL语句中,功能介绍如下:

Decode函数与一系列嵌套的

IF-THEN-ELSE语句相似。base_exp与compare1,compare2等等依次进行比较。如果base_exp和 第i

个compare项匹配,就返回第i 个对应的value

。如果base_exp与任何的compare值都不匹配,则返回default。每个compare值顺次求值,如果发现一个匹配,则剩下的compare值(如果还有的话)就都不再求值。一个为NULL的base_exp被认为和NULL

compare值等价。如果需要的话,每一个compare值都被转换成和第一个compare 值相同的数据类型,这个数据类型也是返回值的类型。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/11676367.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存