`
slbszq
  • 浏览: 267825 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

Oracle中常用的函数总结

阅读更多

 Oracle中常用的函数

--单行函数

--数字函数

--1. round 四舍五入 a. round(m)

select round(1.4), round(1.5) from dual;                                                       

--         1          2                                                          

--b. round(m,n)

select round(15.193, 2), round(15.193, -1) from dual;                                             

--          15.19               20                                               

 

--2. trunc(m, n)不进行四舍五入,直接截取

select trunc(15.79, 1), trunc(15.79, -1) from dual;                                              

--          15.7              10                                                 

 

--3. mod(m, n)注意:当m, n为负数时,结果与数学上的经典求模结果不一样

select mod(11, 4) from dual;                                                                 

--         3                                                                     

--Oracle求模与数学上经典求模差别

m

n

MOD(m, n)

Classical Modulus

11

4

3

3

11

-4

3

-1

-11

4

-3

1

-11

-4

-3

-3

 

--4. ceil(天花板)返回不小于参数的最小值

select ceil(1.5), ceil(1.2) from dual;                                                       

--         2          2                                                          

 

--5. floor(地板)返回不大于该参数的最大值

select floor(1.9), floor(1.2), floor(-1.9) from dual;                                         

--         1          1          -2                                              

 

--字符函数

--1. upper 把字符串中的每个单词字母转换成大写

select upper('Zhengzhou') from dual;                                                                   

--ZHENGZHOU                                                                       

 

--2. lower 把字符串中的每个单词字母转换成小写

select lower('ZhengZHOU') from dual;                                                    

--zhengzhou                                                                      

 

--3. initcap 把字符串中单词首字母转换成大写

select initcap('zhong hua ren min gong he guo') from dual;                                                 

--Zhong Hua Ren Min Gong He Guo                                                  

 

--4. ltrime/rtrim/trim裁剪掉前导/后导/两端空格字符

select length(ltrim(' aa  ')), length(rtrim(' aa  ')), length(trim(' aa  ')) from dual;                

--                  4                   3                  2                     

 

-- leading 代表前导, trailing代表后导, both代表全部

select trim(leading 'a' from 'aabbccaa') "leading",

       trim(trailing 'a' from 'aabbccaa') "traling",

       trim(both 'a' from 'aabbccaa') "both" from dual;                                                         

 

--bbccaa aabbcc bbcc                                                              

 

--5. substr 截取字符串

--a. 从字符串左边开始的3字符开始截取,长度为4

select substr('abcdefg', 3, 4) from dual;                                                                  

--cdef                                                                           

 

--b. 从字符串右边开始的5字符开始截取,长度为4(小数忽略)

select substr('abcdefg', -5, 4) from dual;                                                                       

--cdef                                                                           

 

--c. 从字符串左边开始的第二个字符开始截取,长度为4(小数忽略)

select substr('abcdefg', 2, 4.3) from dual;                                                                      

--bcde                                                                           

 

--d. 从第二个字符开始截取,长度超出范围只会输出剩余字符.

select substr('abcdefg', 2, 8.8) from dual;                                                                       

--bcdefg                                                                         

 

--6. length 注:Oracle1个汉字算1个字符,也是使用unicode编码

select length('zhongguo'), length('中国') from dual;                                    

--                 8              2                                              

 

-- lengthb 得到字符串的字节长度

select lengthb('zhongguo'), lengthb('中国') from dual;                                         

--                  8               4                                            

 

--7. replace(src, search, replacement) 把字符串中指定的字符删除或者替换成别的字符

select replace('chen', 'c'), replace('chen', 'c', 'aa') from dual;                                               

--hen aahen                                                                       

 

--8. concat(char1, char2)拼接字符串 注:所有SQL,+只用于数字

select concat('中华', '人民') || '共和国' || 1949 from dual; 

--中华人民共和国1949                                                             

 

--日期函数 Oracle, 有如下操作时合法的:

--日期-日期 = 数字 (相差的天数)

--日期+数字 = 新的日期 (数字指添加的天数)

--1. months_between(date1, date2)算出两个日期间的间隔月数

select months_between(

       to_date('2008-08-08', 'yyyy-mm-dd'),

       to_date('2013-08-08', 'yyyy-mm-dd')

) from dual;                                                                   

--       -60                                                                     

 

--next_day(date, char) 返回当前日期的下一个字符串参数指定的日期char必需表示一周中的某一天

select next_day(to_date('2014-01-13', 'yyyy-mm-dd'), '星期三') from dual;

--2014-01-15                                                                      

 

--3. last_day(date) 得到某个日期当月最后一天的日期

select last_day(to_date('2014-01-13', 'yyyy-mm-dd')) from dual;

--2014-01-31                                                                     

 

--4. round 日期四舍五入

select round(to_date('2014-01-13', 'yyyy-mm-dd'), 'year'),

round(to_date('2014-07-01', 'yyyy-mm-dd'), 'year') from dual;

--2014-01-01 2015-01-01                                                          

 

--转换函数

--1. to_number(expr, fmt) 把字符串按指定格式转换成整数

select to_number('123,456,789', '999,999,999') from dual;                                     

--                             123456789                                         

 

--2. to_char(number) 字符串按照指定格式转换

--a. $ 代表美元符号

select ename, to_char(sal, '$999,999,999,99') from emp;

 

--b. L 代表系统本地化的货币格式

select ename, to_char(sal, 'L999,999,999,99') from emp;

 

--c. to_char(datetime, fmt) 把一个日期时间转换成指定的字符串格式

select ename, to_char(hiredate, 'yyyy-mm-dd hh24:mi:ss') from emp;

 

-- 注意:除了,./等少数标点外,日期格式中其他字符必须用“”括起来

--3. to_date 将指定文本格式的日期转换为日期类型.

select ename, job, sal, hiredate from emp where hiredate = to_date('1981-5-1', 'yyyy-mm-dd');

 

-- 其它函数

-- 1. nvl(exp1, exp2) 用于处理null,如果exp1的值为空则表达式值为exp2,否则为exp1.

select ename, (sal + nvl(comm, 0))*12 from emp;

 

-- 2. decode执行类似于switch.. case.. default的选择逻辑

-- 将岗位中的ANALYST显示为分析师,SALESMAN显示为销售,

-- MANAGER显示为经理,其余的显示为其他

select ename, job, decode(job,

       'ANALYST', '分析师',

       'SALESMAN', '销售员',

       'MANAGER', '经理',

'其他') from emp;

 

-- 多行函数/聚合函数/分组函数

-- 多行函数:一次调用,处理多行数据

-- 1. avg:求多行一列的列平均值

select avg(sal) from emp where deptno = 10;

-- 注:分组查询时,select子句中只能出现分组表达式和分组函数

-- 除此之外的任何列都是非法的。

select deptno, avg(sal) from emp group by deptno;

 

-- 2. count 统计数量count忽略null.查询显示奖金的人数

select count(comm) from emp;

 

-- 3. max:返回多行一列中最大行的值

select max(sal) from emp;

 

-- 4. min:返回多行一列中最小行的值

select min(sal) from emp;

 

-- 5. sum:返回多行一列的和

-- 结论:where子句中禁止出现聚合函数!如需过滤聚合函数的结果,

-- 则使用having子句,如:显示部门开支超过一万的。

select deptno, sum(sal + nvl(comm, 0)) from emp

 

group by deptno having sum(sal + nvl(comm, 0)) > 10000;

分享到:
评论

相关推荐

    Oracle_Sql_中常用字符串处理函数

    Oracle Sql 中常用字符串处理函数 Oracle Sql 中提供了多种字符串处理函数,用于对字符串进行各种操作,如大小写转换、截取、连接、查找、替换等。下面是 Oracle Sql 中常用的字符串处理函数: 1. 大小写转换函数 ...

    Oracle中常用函数.doc

    Oracle中常用的函数,没事的时候可以看看。

    oracle时间函数处理总结大全

    本文将根据给定的内容对Oracle中常用的时间函数进行详细介绍,并提供具体的使用示例。 #### 1. `Sysdate` `Sysdate`函数返回当前系统的日期和时间。 ```sql SQL> Select sysdate from dual; ``` 输出结果: ``` ...

    sql server和oracle中常用函数的比较

    以上对比涵盖了SQL Server和Oracle中常用数学、字符串处理和数据分析函数的主要区别。理解这些差异有助于在实际应用中做出更合适的选择,提高代码的兼容性和效率。尽管两者在功能上有许多相似之处,但在语法和细节上...

    oracle+110个常用函数

    以下是一些在Oracle SQL中常用的函数,这些函数在数据库管理、查询和分析时非常实用。 1. ASCII函数:ASCII函数返回一个字符对应的ASCII码,即十进制数字。例如,`ASCII('A')`返回65,`ASCII(' ')`返回32。 2. CHR...

    SQL SEVER与ORACLE常用函数比较

    在SQL Server和Oracle数据库系统中,...以上就是SQL Server和Oracle中常用数学函数的比较,理解这些函数对于在两者之间迁移代码或进行跨平台开发非常有帮助。在实际使用中,应根据具体需求和数据库系统选择合适的函数。

    oracle10g函数大全

    以下是一些在Oracle 10g中常用的函数分类及详细说明: **数学函数** 1. **ROUND()**: 用于四舍五入数值,可以指定小数位数。 2. **TRUNC()**: 去掉数字的小数部分,可指定截断位置。 3. **CEIL()**: 向上取整到最...

    oracle转成postgre时,oracle中函数的处理工具(orafce)

    4. **其他兼容性函数**:包括ROWNUM、DBMS_OUTPUT等,这些在Oracle中常用的函数在PostgreSQL中可能不存在,orafce提供了一个桥接。 安装orafce时,你需要在PostgreSQL服务器上执行SQL脚本,然后创建扩展。在完成...

    最全的oracle函数大全

    以下是一些在Oracle中常用的函数,这些函数在数据库操作中扮演着重要角色。 1. ASCII函数:ASCII函数用于返回指定字符的ASCII码,即对应的十进制数值。例如,ASCII('A')将返回65,ASCII('a')返回97,等等。 2. CHR...

    oracle sql内置函数大全

    以上列举了Oracle SQL中常用的内置函数,这些函数能够帮助开发者和数据库管理员更加高效地处理数据和执行各种操作。对于日常的数据分析和报告生成等工作,熟练掌握这些内置函数是非常有帮助的。

    Oracle SQL 内置函数大全

    ### Oracle SQL 内置函数详解 #### 一、ASCII函数:获取字符的ASCII码值 - **功能**:`ASCII` ...以上就是 Oracle SQL 中常用的内置函数的一些示例及其使用方法,这些函数可以帮助我们在处理数据时更加高效和灵活。

    oracle常用函数大全

    以下是一些在Oracle中常用的函数,这些函数可以帮助数据库管理员和开发人员进行数据查询、操作和分析。 1. ASCII函数:ASCII函数返回一个字符的ASCII码,即对应字符的十进制数字。例如,ASCII('A')返回65,ASCII('a...

    SQLServer和Oracle常用函数对比

    本篇文章将深入探讨 SQL Server 和 Oracle 中常用的数学函数的对比,帮助用户更好地理解和运用这两种数据库系统。 1. **绝对值**: - SQL Server: `ABS()` 函数用于计算一个数的绝对值,例如 `ABS(-1)` 返回 1。 ...

    收集的ORACLE函数大全

    以下是一些在Oracle SQL中常用的单记录函数的详细解释: 1. ASCII函数:ASCII函数返回一个字符的ASCII码,即该字符对应的十进制数字。例如,ASCII('A')返回65,ASCII('a')返回97,ASCII('0')返回48,ASCII(' ')返回...

    Oracle常用函数介绍

    下面将详细介绍在Oracle中常用的函数和运算符。 首先,我们来看**运算符**: 1. **算术运算符**:`+`、`-`、`*`、`/` 用于进行基本的数学运算。例如,如果你需要对两个数值进行加法操作,可以在`SELECT`语句中使用...

    ORACLE常用函数大全

    根据提供的文件信息,我们可以归纳总结出Oracle数据库中一系列常用的功能函数及其使用方法。...以上就是Oracle中常用的函数概述及用法介绍。通过这些函数,用户可以更高效地进行数据处理和查询操作。

    ORACLE函数大全

    以下是一些在Oracle中常用的函数,它们是数据库查询和数据处理的核心工具。 1. ASCII函数:ASCII函数用于返回一个字符的ASCII码,即对应字符的十进制数值。例如,ASCII('A')将返回65,因为"A"在ASCII表中的值是65。...

    oracle110个常用函数.docx

    以下是一些在Oracle中常用的函数,这些函数对于数据库查询和数据处理至关重要。 1. ASCII 函数: ASCII函数用于返回一个字符对应的ASCII码值,这是一个十进制数字。例如,ASCII('A')返回65,ASCII('a')返回97,...

    oracle函数大全

    以下是一些在Oracle中常用的函数,它们涵盖了各种数据类型和操作。 1. ASCII函数:ASCII函数返回一个字符的ASCII码,即其对应的十进制数值。例如,ASCII('A')返回65,表示'A'的ASCII值。 2. CHR函数:CHR函数用于...

Global site tag (gtag.js) - Google Analytics