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;