Oracle常用系统函数

 1、字符类函数

                 字符类函数:专用于字符处理函数,处理的对象可以是

                 字符或字符串常量,也可以是字符类型的列。               

                  注:daul表是Oracle系统内部提供的一个用于实现临时数

             据计算的特殊表,其只有一个列DUMMY,类型为VARCHAR2(1);    

                  1)ASCII(c)函数和CHR(i)函数

                        参数c:表示一个字符

                        参数i:表示一个数字

                        ASCII(c)函数:用于返回一个字符的ASCII码;

                        CHR(i)函数:用于返回ASCII码对应的字符;

 范例:

Oracle常用系统函数

  

     2)CONCAT(s1,s2)函数

             参数s1,s2:表示字符串(可为空)

      3)INITCAP(s)函数

            该函数将字符串s的第一个字母大写,其它字母小写。单词之间用空格、控制字符、标点符号来区分。

       4)INSTR(s1,s2[,i][,j])函数

            该函数用于返回字符s2在字符串s1中第j次出现的位置,搜索从字符串s1的第i个字符开始,若没有发现要查找的字符,函数返回值为0。

       5)LENGTH(s)函数

            该函数用于返回字符串s的长度,若s为null,则返回值为null.

       6)LOWER(s)函数与UPPER(s)函数

            LOWER(s)函数和UPPER(s)函数分别用于返回字符串s的小写形式和大写形式。

       7) LTRIM(s1,s2)函数、RTRIM(s1,s2)函数和TRIM(s1,s2)函数;

            此三个函数分别用来删除字符串s1左边的字符串s2、用来删除字符串s1右边 的字符串s2、用来删除字符串s1左右两端边的字符串s2,若这3个函数中不能指定字符串s2,则表示去除相应的空格。

 范例:

Oracle常用系统函数

Oracle常用系统函数

        (8) REPLACE(s1,s2,[s3])函数

         该函数使用s3字符串替换出现在s1字符串中的所有s2字符串,并返回替换

         后的新字符串。其中,s3默认为空字符串。

       范例:

Oracle常用系统函数

   (9) SUBSTR(s,i,[j])函数

            该函数表示从字符串s的第i个字符串开始截取长度为j的子字符串。

   范例:

Oracle常用系统函数

 2、数字类函数

        数字函数主要用来执行各种数据计算,所有的数字函数都有数字参数并返回数字值。

        数字函数及其说明

        ABS(x)          返回x的绝对值

 [sql]

 SELECT ABS(3), ABS(-1) FROM DUAL;  

        BITAND(x,y)     返回对x,y进行位与(AND)操作的结果

[sql]

SELECT BITAND(1,0), BITAND(0,1), BITAND(0,0), BITAND(1,1), BITAND(1100, 1010) FROM DUAL;  

         CEIL(x)         返回大于或等于x的最小整数(注意负数)

         FLOOR(x)        返回小于或等于x的最大整数

[sql]

SELECT CEIL(5.6), CEIL(-5.6) FROM DUAL;  

SELECT FLOOR(5.6), FLOOR(-5.6) FROM DUAL;  

        EXP(x)          返回e的x次幂,其中e约为2.71828183

        LN(x)           返回x的自然对数

[sql]

SELECT EXP(2), EXP(1), EXP(2.3) FROM DUAL;  

SELECT LN(EXP(2)), LN(2.71828183) FROM DUAL;   

        LOG(x,y)        返回以x为底y的对数

        POWER(x,y)      返回x的y次幂

SQRT(x)         返回x的平方根

[sql]

SELECT LOG(10,100), POWER(3,3), SQRT(4) FROM DUAL;  

        MOD(x,y)        返回x除以y的余数

[sql]

SELECT MOD(2.31, 1.1) FROM DUAL;  

        SIGN(x)         返回x的符号

[sql]

SELECT SIGN(5), SIGN(-5), SIGN(0) FROM DUAL;  

        ROUND(x[,y])    返回对x取整的结果。y为可选参数,说明对第几位小数处取整。没有指定y的时候,则对x的0位小数取整vkjsy是负数,则对x在小数点的左边的第|y|位取整。此函数是四舍五入取整

         TRUNC(x[,y])    与ROUND类似,之不过是直接舍去尾数

[sql]

SELECT ROUND(1234.5678), ROUND(1234.5678, 2), ROUND(1234.5678, -2) FROM DUAL;  

SELECT TRUNC(1234.5678), TRUNC(1234.5678, 2), TRUNC(1234.5678, -2) FROM DUAL;

范例:

Oracle常用系统函数

3、日期函数和时间类函数

此函数可以实现计算需要的特定日期和时间

日期函数和时间类函数表

 

函数

说    明

add_months(d,i)

返回日期d加上i个月之后的结果。其中,i为任意数

last_day(d)

返回包含日期d月份的最后一天

months_betweend(d1,d2)

返回d1和d2之间的数目,若d1和d2的日期都相同,或者都

是该月最后一天,则返回一个整数,否则返回的结果将包含一个小数

new_time(d1,t1,t2)

d1是一个日期数据类型,当时区t1中的日期和时间是d1时,返回时区t2中的日期和时间,t1和t2是字符串

sysdate()

或systimestamp

返回系统当前时间

范例:

Oracle常用系统函数

: to_date()把字符串类型转换为date类型。

4、转换类函数

转换函数将指定字符从一种类型转换为另一种,通常这类函数遵循如下惯例:函数名称后面跟着待转换类型以及输出类型。 

转换类函数表

函数

说    明

chartorwida(s)

该函数将字符串s转换为RIWD数据函数

convert(s,aset[,best])

该函数将字符串s由best字符集转换为aset字符集

rowidtochar()

该函数将ROWID数据类型转换为CHAR类型

to_char(x[,format])

该函数将表达式转换为字符串,format表示字符串格式

to_date(s[,format[lan]])

该函数将字符串s转换成date类型,format表示字符串格式,lan表示所使用的语言

to_number(s[,format[lan]])

该函数将返回字符串s代表的数字,返回值按照format表示字符串格式进行显示,lan表示所使用的语言

5、聚合类函数

注意:

 Oracle常用系统函数

Oracle常用系统函数

补充:

      SELECT[DISTINCT] * | 列名称[别名],列名称[别名],......|统计函数             ———— 5、确定查询列

      FROM 数据表[别名],数据表[别名]......          

                 ———— 1、数据来源

      [where 条件]                                

                 ———— 2、过滤数据行

      [GROUP BY 分组字段,分组字段,........]        

                 ———— 3、执行分组操作

      [HAVING 分组过滤]                          

                 ———— 4、针对分组后的数据过滤

      [ORDER BY 字段[ASC|DESC],字段[ASC|DESC],......]

                 ———— 6、数据排序

Where和having区别:

      Where子句:是在分组前使用,而且不能使用统计函数进行验证,经过where筛选后的数据才可以分组。

      Having子句:必须结合group by子句一起出现,是在分组后的过滤,可以使用统计函数。

      范例:

           统计查询有佣金和没有佣金人数和平均工资

 注意以下区别:

Oracle常用系统函数

Oracle常用系统函数

Oracle常用系统函数

6、通用函数(Oracle特色函数)

1)处理null数据,数字NVL(列 | 数据,默认值)

     在数据库中null与任何数学计算其结果都是为空,那么就可以使用NVL函数,将null按照数字0来处理。

范例:

Oracle常用系统函数

(2)多数据判断:数据DECODE(字段 | 数据)

  范例:

Oracle常用系统函数