您的位置:首页 > 数据库

plsql知识梳理-常用函数

2011-09-02 17:07 288 查看
plsql中很多的操作函数,我这边只是梳理了一些特常用的函数。

1 substr()

substr(字段,a,b)

a代表第几个位置

b代表长度

a参数中0和1的效果一样

用负数则从右边开始数第几个位置

如下图 执行的效果











2 concat()

concat 函数只能连接2个字符串,不能一次性的连3个字符串。









3 lower,upper

Lower:返回字符串,并将所有的字符小写

Upper:返回字符串,并将所有的字符大写



4 Trim,Ltrim,Rtrim

rim、Ltrim及Rtrim函数完成将字符串中的一部分或全部空格去掉。

Trim去掉字符串中的头部和未部空格。

Ltrim去掉字符串中起始的空格。

而Rtrim将字符串末尾的空格都去掉。

请看下图的执行效果





5 to_char(n,format) 和to_date(string,format)

to_char 就是将数值型或者日期型转化为字符型

数值型 函数规格化时 90.0999的含义是有9的地方如果是数字就显示如果没有数字就不显示;有0的地方在没有数字的时候也会有0来占位。



主要事项:

1) 上图中的0.789数值经过to_char后再显示变成了.789。

2) 指定的FM格式 会在按位截取小数的时候四舍五入了。

to_char ---日期格式的内容



To_date()

函数将char 或varchar2类型的值转化为一个Date值。

6 floor ceil round trunc

FLOOR——对给定的数字取整数位

CEIL ——返回大于或等于给出数字的最小整数

ROUND——按照指定的精度进行四舍五入,传回一个数值,该数值是按照指定的小数位元数进行四舍五入运算的结果

TRUNC——按照指定的精度进行截取一个数



trunc(x [,y]),其中如果没有指定y,则对x在0位小数上进行简单的截断. 如果y是负数,则对x在小数点左边的第|y|位处进行截断,对应负数,位数计算是从0开始的,小数点左一位为0位置。-1 就是要操作十位上的数,-2就是要操作百位上的数。

round(x [,y]) 其中如果没有指定y,则对x在0位小数进行四舍五入的取整。如果y是负数,则对x在小数点左边的第|y|位处进行四舍五入的取整。对应负数,位数计算是从0开始的,小数点左一位为0位置。就是要操作十位上的数。-2就是要操作百位上的数。



7 聚合函数—SUM,AVG,MIN,MAX,COUNT

Sum 该函数计算组中表达式的累积和。

MIN 该函数计算组中表达式的最小值。

MAX 该函数计算组中表达式的最大值。

AVG 该函数计算组中表达式的平均值。

Count 该函数计算组中的记录个数。



8 group by, having,order by

Order by 就是行排序 默认是升序。 后面可以是多个字段名。

Group by 分组,就一般是和聚合函数配合使用,就是要将数据分类汇总。

Group by 有分组查询的意思,有一个原则就是select 后面的所有列中,没有使用聚合函数的列,必须出现在group by 后面。

Having子句被限制在已经select 语句中定义的列和聚合表达式上。

where 和 having

Where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据。条件中不能包含聚合函数。

Having 子句的作用是筛选满足条件的组,即在分组之后过滤数据。条件中经常包含聚合函数。



9 distinct 过滤重复行函数



10 Replace 替换函数



11 case when

Case具有两种格式。简单Case函数和Case搜索函数。





12 nvl2,decode

NVL2(expr1,expr2,expr3)

  功能:如果参数表达式expr1值为NULL,则NVL2()函数返回参数表达式expr3的值;如果参数表达式expr1值不为NULL,则NVL2()函数返回参数表达式expr2的值。

DECODE(value, if1, then1, if2,then2, if3,then3, . . . else )

DECODE函数是ORACLE PL/SQL的功能强大的函数之一,目前还只有ORACLE公司的SQL提供了此函数,其它数据库厂商的SQL实现还没有此功能。

如果用DECODE函数,那么我们就可以把很多If – Then –Else 流控制语句省略,通过SQL语句就可以直接完成。

 Value 代表某个表的任何类型的任意列或一个通过计算所得的任何结果。当每个value值被测试,如果value的值为if1,Decode 函数的结果是then1;如果value等于if2,

Decode函数结果是then2;

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: