`

oracle----函数收集

阅读更多
日期函数

1.ADD_MONTHS(date, n):用于从一个日期值增加或减少一些月份
例子: add_months(sysdate,12) 增加一年 ,如果现在是2010年5月9日,运算后结果是2011年5月9日
 
2. MONTHS_BETWEEN(date1, date2):判断两个日期之间相差的月份
例子: months_between('22-10月-09', sysdate)
输出:-4.0934573  早四个多月

3. LAST_DAY(date):函数返回包含日期的月份的最后一天
例子 : last_day('10-2月 -10') 返回 28-2月 -10  

4. ROUND(date[,'fmt']):将日期d按照fmt指定的格式舍入,fmt为字符串
今天是10年2月24日
例子: round(sysdate,'MONTH') 返回 01-3月 -10 就是根据日来四舍五入月
round(sysdate,'YEAR') 返回 01-1月 -10  根据月来四舍五入年

5. TRUNC(date[, 'fmt']):返回由fmt指定的单位的日期
今天是10年2月24日
例子:
trunc(sysdate,'MONTH')  返回 01-2月 -10  
trunc(sysdate,'YEAR')   返回 01-1月 -10   

6. NEXT_DAY(date, 'char'):找到下一个星期几
今天是10年2月24日

例子:
next_day(sysdate,'星期五')  返回 26-2月 -10 

7. extract(date_field from [datetime_value]):找出日期或间隔值的字段值---提取函数
今天是10年2月24日

例子: extract(month from sysdate)  返回 2
extract(year from sysdate)  返回 2010
extract(day from sysdate)  返回 24

--------------------------------------------------------------------------

字符函数

1. initcap('hello') 首字母变大写
返回 : Hello 

2. lower('HOW ARE YOU') 返回  how are you   

3. upper('hello world')  返回  HELLO WORLD  

4. ltrim('xyzadams','xyz') 返回 adams 
把'xyzadams' 字符串中左边的'xyz'字串去掉

5. rtrim('xyzadams','ams') 返回 xyzad

6.TRANSLATE(string,from_str,to_str):返回将(所有出现的)from_str中的每个字符替换为to_str中的相应字符以后的string 
例子:
translate('JACK and JUE', 'JU','BL')
返回 'BACK and BLE'
意思是把字符串中的字母J变成B ,把U变成L
translate('JACK and JUE', 'J','BL') 这个等效于 
translate('JACK and JUE', 'J','B') 因为L没有对应的东西


7. replace('JACK and JUE','J','BL')
返回 BLACK and BLUE  

8.instr('abcdeadab','a',2,2) 返回 8 意思是在'abcdeadab'找'a',从第二个位置开始找,找第二次出现的a

instr-----indexString

instr('abcdeadab','a') 返回 1 等效于 instr('abcdeadab','a',1,1)

9. substr('abcdefgh',2,4) 返回 bcde 
从'abcdefgh'的第二个位置开始找,字串长度为4

10.concat('hello',' world') 返回 hello world 

11.  chr(65) 返回 A   
 相当于java中的 new Charater(65); 就是把65当做ascii转换成字符

12. ascii('a') 返回  97
返回a的ascii

13.  lpad('abcde',10,'wt') 返回 wtwtwabcde 
leftpadding 把'abcde'变成10个字符,左边用'wt'填充

14. rpad('abcde',10,'w') 返回 abcdewwwww

15.trim([leading/trailing/both][匹配字符串或数值][from][需要被处理的字符串或数值])
例子: 
trim(0 from 7600)  返回 76
去掉两边的0
trim('中' from '中秋八月中') 返回 '秋八月'
trim(leading '半' from '半夜二更半') 返回 '夜二更半'

16. length('how are you') 返回 11

17. DECODE 条件语句 
select empno,ename,job,sal,
  2  decode(job,'CLERK', sal*1.5,
  3             'SALESMAN', sal*2.0,
  4             'MANAGER',sal*3,
  5                       sal ) as "new salary"
  6  from emp;

--------------------------------------------------------------------------------

数字函数
1. abs(-12) 返回 12 求绝对值

2. ceil(44.778) 返回 45 ; 进位法保留整数,也就是整数总要+1

3. COS(x)函数,返回x的余弦值。x是以弧度表示的角度
例子: 
cos(180) 返回  -.59846007 

4. COSH(x)函数,返回X的双曲余弦 
cosh(0) 返回 1

5.  FLOOR(x)函数,用来返回小于或等于X的最大整数,不能对小数操作
floor(100.2) 返回100  返回整数,舍去小数

6.POWER(x,y)函数,返回X的Y次幂。底X和指数Y都不必是正整数,但如果X是负数的话,Y必须是整数     
power(4,2) 返回 16 

7.MOD(被除数,除数)求余函数,如果除数为0,则返回被除数
例子:
mod(10,3)  返回 1

8. ROUND(x[,y])函数,返回舍入到小数点右边Y位的X值。Y缺省为0,这将X舍入为最接近的整数。如果Y是负数, 那么舍入到小数点左边相应的位上,Y必须为整数 
例子:
round(100.347,2) 返回 100.35  四舍五入,保留两个小数

9.TRUNC(x[,y])截取值函数,Y缺省为0,这样X被截取成一个整数。如果Y为负数,那么截取到小数点左边相应位置 

 trunc(100.347,2) 返回100.34
trunc(100.347,-2)  各位的位置是0,所以小数点后一位的位置是1,所以-2代表保留三个整数 所以返回 100

10. sqrt(4) 返回2  开根号

11.SIGN(x)函数,此函数用来返回一个数的正负值,若为一个正数则返回1,若为一个负数则返回-1,若为0则仍返回0,有点像把模拟量数字化的意思 
返回符号位
sign(-10) 返回-1
sign(5)  返回1
sign(0) 返回0 

-------------------------------------------------------------------------------

转换函数

1.
 to_char(sysdate, ' YYYY "年" fmMM "月" fmDD "日" HH24:MI:SS ')
日期转字符串, 其中fm表示去掉前导0
返回
2010 年 2 月 24 日 22:46:56   

把数字转换成字符: to_char(800,'C99999') 返回 'CNY800' 这个在钱币格式化时候很有用

2. to_number('100') 返回100 

3. to_date 

------------------------------------------------------------------------
条件函数

1.NVL(exp1,exp2) :  如果exp1为null,则NVL返回exp2;反之返回exp1 
 
NVL(comm,0) 如果comm为null用0代替


2.NVL2(exp1,exp2,exp3) :如果exp1不是null,则返回exp2,如果是,则返回exp3 

NVL2(comm,sal+comm,sal) ---就不说了


-------------------------------------------------------------------------

分析函数 


1. select ename,job,deptno,sal, row_number() over (order by sal desc) as sal_rank from emp;

ROW_NUMBER 返回连续的排位,不论值是否相等

2. select deptno,ename,sal,comm, rank() over(partition by deptno order by sal desc,comm) rank  from emp;

RANK 具有相等值的行排位相同,序数随后跳跃

3. 
SQL> select d.dname,e.ename,e.sal,dense_rank() over(partition by e.deptno order by e.sal desc)
  as denrank
  from emp e, dept d
  where e.deptno=d.deptno;

DENSE_RANK 具有相等值的行排位相同,序号是连续的


分享到:
评论

相关推荐

    oracle---网络搜集

    在“Oracle---网络搜集”这个主题中,我们可以涵盖多个Oracle相关的知识点,包括但不限于以下内容: 1. **Oracle架构**:Oracle数据库的架构包括服务器进程、后台进程、内存结构和磁盘结构。服务器进程如SQL*Net...

    Oracle-Built-In-Packages

    这些包极大地简化了与Oracle数据库交互的过程,使得开发人员和DBA可以利用现成的函数和过程,而无需从零开始编写复杂的SQL或PL/SQL代码。 在"Oracle-Built-In-Packages"这本书中,作者详细介绍了如何利用这些内置包...

    Python库 | windows-oracle-finder-2020.3.6.tar.gz

    6. **日志和错误报告**:收集和分析Oracle数据库的日志文件,帮助开发者或管理员诊断问题。 在实际应用中,这个库可能被系统管理员、数据库管理员或者需要与Oracle数据库交互的Python开发者使用。通过这个库,他们...

    Oracle-Forms-Material.pdf

    4. **PL/SQL Editor**:集成的Oracle Procedure Builder功能,支持触发器、过程、函数和包的开发,以及用于存储PL/SQL程序单元的库的创建。 #### 表单模块类型 1. **Form Module**:包含一系列目标,如块、画布、...

    oracle-ocp-052

    Oracle OCP(Oracle Certified Professional)是Oracle公司推出的数据库专业认证,是全球认可的数据库专家资格。052作为Oracle OCP认证的一部分,通常涉及到Oracle数据库的深入操作和管理,包括性能优化、备份恢复、...

    oracle-schedule.rar_oracle_oracle schedule

    在Oracle中,调度任务(Oracle Schedule)是数据库管理的重要组成部分,它允许管理员自动化执行一系列任务,如数据备份、统计信息收集、作业调度等。这个"oracle-schedule.rar"压缩包提供了一份关于Oracle计划任务的...

    Oracle10G函数大全(chm格式的,比较全面)

    Oracle 10G是Oracle数据库的一个重要版本,它包含了丰富的函数和特性,为数据库管理和开发提供了强大的支持。本文将深入探讨Oracle 10G中的一些关键函数,旨在帮助你更好地理解和利用这些工具。 1. **数学函数**: ...

    Oracle-使用-技巧.doc

    报告中会包含详细的建议,比如建议创建的索引类型(如B树、位图、函数索引等),以及预期的性能提升。此外,该工具还提供了脚本,这些脚本可以直接用于在数据库中实现建议的索引变更。 继续到“完成”界面(如图...

    dba-oracle-sql优化.

    1. **选择合适的索引类型**:B树索引、位图索引、函数索引等各有适用场景。 2. **复合索引**:根据查询条件选择合适的列组合创建复合索引,提高查询效率。 3. **覆盖索引**:索引包含查询所需的所有数据,避免回表...

    oracle-OCP教程中文版

    Oracle OCP(Oracle Certified Professional)是Oracle公司推出的数据库管理员专业认证,它代表了对Oracle数据库管理技术的深入理解和专业技能的证明。本教程中文版包括了DBA1和DBA2两部分,提供了全面的学习资源,...

    Oracle-database-10g:性能优化(D1965CN10)

    因此,合理设计和使用索引,如B树索引、位图索引、函数索引等,是性能优化的重要环节。 3. **表和分区设计**:表的物理组织方式,如堆表、索引组织表、分区表等,都会影响性能。分区技术尤其在处理大量数据时能提高...

    Oracle-Pl-Sql 培训 PPT

    9. **游标表达式和 bulk collect**:游标表达式允许将查询结果一次性加载到变量数组中,bulk collect是批量收集数据到集合变量的语法,提高了处理大量数据的效率。 10. **嵌套表和关联数组**:PL/SQL支持嵌套表和...

    Oracle-Concept.zip

    11. PL/SQL:Oracle的编程语言,结合了SQL的查询能力与过程编程语言的特点,用于编写存储过程、函数、触发器等。 12. ADR(Automatic Diagnostic Repository):自动诊断存储库收集数据库和实例的诊断信息,帮助...

    oracle函数大全(分类显示).zip_Oracle 函数分类_oracle_oracle函数分类_oracle函数查阅用文档

    这份"oracle函数大全(分类显示).zip"压缩包显然是一份详细的Oracle函数参考手册,对于初学者而言,是一个非常宝贵的资源。下面,我们将深入探讨Oracle函数的分类以及一些重要的函数类型。 1. **数学函数**: 包括...

    Oracle-索引.ppt

    6. **基于函数的索引**:基于列上的函数或表达式创建,使得可以基于函数结果进行查询,但不支持聚集函数,也不能应用于LOB、REF或嵌套表列。 7. **全局索引和局部索引**:在分区表中,全局索引跨越所有分区,而局部...

    oracle函数速查手册

    "Oracle函数速查手册"是一份非常实用的参考资料,它涵盖了Oracle数据库中的各种函数,帮助用户快速查找并理解如何使用这些函数。在数据库管理、查询优化以及复杂数据处理时,这些函数起着至关重要的作用。 Oracle...

    Oracle-sql语句收集整理大全.pdf

    根据给定文件的信息,我们可以总结出一系列与Oracle SQL语句相关的知识点。这些知识点涉及了基本的数据操作、查询优化以及复杂的连接查询等。 ### 一、基础数据操作 #### 1. 复制表结构(不含数据) - **SQL语句**...

    oracle性能优化、函数大全、傻瓜問題

    二、Oracle函数大全 Oracle数据库中包含大量的内置函数,涵盖数值、字符串、日期、集合、系统等各类操作: 1. 数值函数:如ROUND、TRUNC、MOD等用于数值处理。 2. 字符串函数:如SUBSTR、INSTR、UPPER/LOWER、...

    收集的ORACLE函数大全

    Oracle数据库是世界上最流行的数据库管理系统之一,它提供了丰富的内置函数,以方便用户进行数据处理和查询。以下是一些在Oracle SQL中常用的单记录函数的详细解释: 1. ASCII函数:ASCII函数返回一个字符的ASCII码...

    ORACLE函数书册

    Oracle函数书册主要涵盖数据库性能监控与分析的关键工具——STATSPACK报告的详细解读,它在数据库管理和优化中起着至关重要的作用。STATSPACK是一个用于收集和分析Oracle数据库性能数据的工具,可以帮助DBA(数据库...

Global site tag (gtag.js) - Google Analytics