oracle中的函数介绍(一):nvl函数、decode函数、case when函数、sum函数

来源:互联网 发布:linux cpu指的 什么 编辑:程序博客网 时间:2024/06/05 21:59

本文转载自:http://blog.csdn.net/u013058618/article/details/52947112

学习过程中,一定要学会总结,所以,转载了本篇文章。。


最近做项目接触到的Oracle数据库比较多,经常用到里面的一些函数,以前的博客中也介绍过行转列和列转行,这次再简单给大家介绍几个:

nvl()

NVL(a,b)就是判断a是否是NULL,如果不是返回a的值,如果是返回b的值,b可以是一个固定值或者也可以是重新嵌套的函数求出的值。

例子:nvl(a,'a不能为空')

decode()

DECODE(value, if1, then1, if2,then2, if3,then3, . . . else ),Value 代表某个表的任何类型的任意列或一个通过计算所得的任何结果。

当每个value值被测试,如果value的值为if1,Decode 函数的结果是then1;如果value等于if2,Decode函数结果是then2;等等。事实上,可以给出

多个if/then 配对。如果value结果不等于给出的任何配对时,Decode 结果就返回else 。需要注意的是,这里的if、then及else 都可以是函数或计算表

达式。

例子:decode(颜色字段,‘白色’,‘这是白色’,‘黑色’,‘这是黑色’)

case when

case when语句类似于C#语法中的if else语法,比如:select case when id > 0 then 1 else 0 end as flag from table1,这句sql就表示 筛选所有

table1中的记录,当id大于0时,新的flag列就为1,否则,flag列为0

例子:select case when sex='1' then ‘男’

else 0

end as 性别 from table

sum()over()

sum()over(),在写SQL时我们经常需要汇总一些字段,当然我们也可以在IDE中重新计算,由于sum()是一个分组函数,当我们仅仅是需要计算

一列的值时,over()可以为空。

原创粉丝点击