oracle常用函数介绍及其使用

合集下载

ORACLE_分析函数大全

ORACLE_分析函数大全

ORACLE_分析函数大全Oracle分析函数是一种高级SQL函数,它可以在查询中实现一系列复杂的分析操作。

这些函数可以帮助我们在数据库中执行各种数据分析和报表生成任务。

本文将介绍Oracle数据库中的一些常用分析函数。

1.ROW_NUMBER函数:该函数为查询结果中的每一行分配一个唯一的数字。

可以用它对结果进行排序或分组。

例如,可以使用ROW_NUMBER函数在结果集中为每个员工计算唯一的编号。

2.RANK和DENSE_RANK函数:这两个函数用于计算结果集中每个行的排名。

RANK函数返回相同值的行具有相同的排名,并且下一个排名值将被跳过。

DENSE_RANK函数类似,但是下一个排名值不会被跳过。

G和LEAD函数:LAG函数返回结果集中指定列的前一个(上一个)行的值,而LEAD函数返回后一个(下一个)行的值。

这些函数通常用于计算增长率或发现趋势。

4.FIRST和LAST函数:这两个函数用于返回结果集中分组的第一个和最后一个行的值。

可以与GROUPBY子句一起使用。

5.CUME_DIST函数:该函数用于计算给定值的累积分布。

它返回值的累积分布在结果集中的位置(百分比)。

6.PERCENT_RANK函数:该函数用于计算结果集中每个行的百分位数排名。

它返回值的百分位数排名(0到1之间的小数)。

7. NTILE函数:该函数用于将结果集分成指定数量的桶(Bucket),并为每个行分配一个桶号。

通常用于将数据分组为更小的块。

8.LISTAGG函数:该函数将指定列的值连接成一个字符串,并使用指定的分隔符分隔每个值。

可以用它将多个值合并在一起形成一个字符串。

9.AVG、SUM、COUNT和MAX/MIN函数:这些是常见的聚合函数,可以在分析函数中使用。

它们用于计算结果集中的平均值、总和、计数和最大/最小值。

以上只是Oracle数据库中的一些常用分析函数。

还有其他一些分析函数,如PERCENTILE_CONT、PERCENTILE_DISC等可以用于更高级的分析计算。

oracle常用函数使用大全Oracle除法(转)

oracle常用函数使用大全Oracle除法(转)

oracle常⽤函数使⽤⼤全Oracle除法(转)/chenmeng2192089/article/details/9155625⼀、运算符算术运算符:+ - * / 可以在select 语句中使⽤连接运算符:|| select deptno|| dname from dept;⽐较运算符:> >= = != < <= like between is null in逻辑运算符:not and or集合运算符: intersect ,union, union all, minus要求:对应集合的列数和数据类型相同查询中不能包含long 列列的标签是第⼀个集合的标签使⽤order by时,必须使⽤位置序号,不能使⽤列名例:集合运算符的使⽤:intersect ,union, union all, minusselect * from emp intersect select * from emp where deptno=10 ;select * from emp minus select * from emp where deptno=10;select * from emp where deptno=10 union select * from emp where deptno in (10,20); --不包括重复⾏select * from emp where deptno=10 union all select * from emp where deptno in (10,20); --包括重复⾏⼆.ORACLE⽇期时间函数⼤全TO_DATE格式(以时间:2007-11-02 13:45:25为例)Year:yy two digits 两位年显⽰值:07yyy three digits 三位年显⽰值:007yyyy four digits 四位年显⽰值:2007Month:mm number 两位⽉显⽰值:11mon abbreviated 字符集表⽰显⽰值:11⽉,若是英⽂版,显⽰novmonth spelled out 字符集表⽰显⽰值:11⽉,若是英⽂版,显⽰novemberDay:dd number 当⽉第⼏天显⽰值:02ddd number 当年第⼏天显⽰值:02dy abbreviated 当周第⼏天简写显⽰值:星期五,若是英⽂版,显⽰friday spelled out 当周第⼏天全写显⽰值:星期五,若是英⽂版,显⽰fridayddspth spelled out, ordinal twelfthHour:hh two digits 12⼩时进制显⽰值:01hh24 two digits 24⼩时进制显⽰值:13Minute:mi two digits 60进制显⽰值:45Second:ss two digits 60进制显⽰值:25其它Q digit 季度显⽰值:4WW digit 当年第⼏周显⽰值:44W digit 当⽉第⼏周显⽰值:124⼩时格式下时间范围为: 0:00:00 - 23:59:59....12⼩时格式下时间范围为: 1:00:00 - 12:59:59 ....1. ⽇期和字符转换函数⽤法(to_date,to_char)select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual; //⽇期转化为字符串select to_char(sysdate,'yyyy') as nowYear from dual; //获取时间的年select to_char(sysdate,'mm') as nowMonth from dual; //获取时间的⽉select to_char(sysdate,'dd') as nowDay from dual; //获取时间的⽇select to_char(sysdate,'hh24') as nowHour from dual; //获取时间的时select to_char(sysdate,'mi') as nowMinute from dual; //获取时间的分select to_char(sysdate,'ss') as nowSecond from dual; //获取时间的秒select to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss') from dual//2. select to_char( to_date(222,'J'),'Jsp') from dual显⽰Two Hundred Twenty-Two3.求某天是星期⼏select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day') from dual;星期⼀select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from dual;monday设置⽇期语⾔ALTER SESSION SET NLS_DATE_LANGUAGE='AMERICAN';也可以这样TO_DATE ('2002-08-26', 'YYYY-mm-dd', 'NLS_DATE_LANGUAGE = American')4. 两个⽇期间的天数select floor(sysdate - to_date('20020405','yyyymmdd')) from dual;5. 时间为null的⽤法select id, active_date from table1UNIONselect 1, TO_DATE(null) from dual;注意要⽤TO_DATE(null)6.⽉份差a_date between to_date('20011201','yyyymmdd') and to_date('20011231','yyyymmdd')那么12⽉31号中午12点之后和12⽉1号的12点之前是不包含在这个范围之内的。

oracle数学函数

oracle数学函数

oracle数学函数Oracle数据库中提供了多种数学函数,用于处理数值数据。

这些函数可以用于执行各种计算,包括取整、四舍五入、求平方根、幂运算、三角函数等等。

以下将介绍一些常用的Oracle数学函数:1.ABS(x)函数:返回给定数值x的绝对值。

如ABS(-5)的结果为54.CEIL(x)函数:返回不小于给定数值x的最小整数。

如CEIL(3.6)的结果为45.FLOOR(x)函数:返回不大于给定数值x的最大整数。

如FLOOR(3.6)的结果为36.MOD(x,y)函数:返回给定数值x除以y的余数。

如MOD(10,3)的结果为17.POWER(x,y)函数:返回给定数值x的y次幂。

如POWER(2,3)的结果为88.SQRT(x)函数:返回给定数值x的平方根。

如SQRT(9)的结果为311.LOG(x,y)函数:返回给定数值x的以y为底的对数。

如LOG(100,10)的结果为212.SIN(x)函数:返回给定角度x的正弦值。

其中角度的单位为弧度。

如SIN(PI/2)的结果为113.COS(x)函数:返回给定角度x的余弦值。

其中角度的单位为弧度。

如COS(PI/3)的结果为0.514.TAN(x)函数:返回给定角度x的正切值。

其中角度的单位为弧度。

如TAN(PI/4)的结果为115.ASIN(x)函数:返回给定数值x的反正弦值(弧度)。

如ASIN(1)的结果为PI/216.ACOS(x)函数:返回给定数值x的反余弦值(弧度)。

如ACOS(0.5)的结果为PI/317.ATAN(x)函数:返回给定数值x的反正切值(弧度)。

如ATAN(1)的结果为PI/418.ATAN2(y,x)函数:返回给定直角坐标系中点(x,y)的极坐标系中点的角度值(弧度)。

如ATAN2(1,1)的结果为PI/4以上只是一些常用的Oracle数学函数,Oracle还提供了更多的数学函数,如指数函数、对数函数、双曲函数等等。

可以根据具体需求选择适合的函数进行数值计算。

Oracle中常用的函数与表达式

Oracle中常用的函数与表达式

14.1.8
instr()函数——获得字符串出现的 位置
instr()函数用于获得子字符串在父字符串中出现的位置 。 select instr('big big tiger', 'big') from dual; 可以指定额外的参数,以命令该函数从指定位置开始 搜索。 select instr('big big tiger', 'big', 2) from dual;
14.1.3
lower()函数——返回小写字符串
lower()函数用于返回字符串的小写形式。lower()函数 在查询语句中经常扮演重要角色。例如,对于用户名和密码 的校验来说,用户名一般并不区分大小写,用户无论输入了 大写还是小写形式,都被认为是合法用户。因此,在数据库 查询时,应该将数据库中用户名与用户输入的用户名进行统 一。
14.2.2
round ()函数——返回数字的“四舍 五入”值
round()函数用于返回某个数字的四舍五入值。为了使 用该函数,除了提供原始值之外,还应提供精确到的位数。 精确位数可以为正整数、0和负整数。 select round(2745.173, 2) result from dual; 如果不使用第二个参数,那么,相当于使用了参数0, 即精确到整数。 select round(2745.173) result from dual; 如果第二个参数为负数,那么,相当于将数值精确到 小数点之前的位数。
14.2
Oracle中的数学函数
Oracle提供的数学函数可以处理日常使用到的大多数 数学运算。本小节将讲述Oracle中常用的几种数学函数。
14.2.1
abs ()函数——返回数字的绝对值

oralce函数

oralce函数

oralce函数Oracle是一种关系数据库管理系统,它使用了一种名为Oracle数据库的数据库管理系统。

Oracle是一种强大的工具,提供了许多内置函数,可以用于在数据库中进行各种操作。

以下是一些常用的Oracle函数。

1.聚合函数-AVG:计算指定列的平均值。

-COUNT:计算指定列中非空数据的数量。

-SUM:计算指定列的总和。

-MAX:找到指定列的最大值。

-MIN:找到指定列的最小值。

2.字符串函数-CONCAT:将两个字符串连接成一个字符串。

-LOWER:将字符串转换为小写。

-UPPER:将字符串转换为大写。

-LENGTH:计算字符串的长度。

-SUBSTR:返回一个字符串的子字符串。

3.数值函数-ROUND:将一个数值四舍五入到指定的小数位数。

-CEIL:向上取整,返回不小于指定数值的最小整数。

-FLOOR:向下取整,返回不大于指定数值的最大整数。

-ABS:返回指定数值的绝对值。

-MOD:返回两个数值的余数。

4.日期和时间函数-SYSDATE:返回当前日期和时间。

-ADD_MONTHS:在指定日期上增加指定的月份。

-TRUNC:截断日期或时间到指定的精度。

-MONTHS_BETWEEN:计算两个日期之间的月数差。

-TO_CHAR:将日期转换为指定格式的字符串。

5.条件函数-DECODE:根据条件返回不同的值。

-CASE:根据条件执行不同的操作。

-NVL:如果给定的表达式为NULL,则将其替换为指定的值。

-NULLIF:如果两个表达式的值相等,则返回NULL。

6.分析函数-ROW_NUMBER:为每一行分配一个唯一的数字。

-RANK:为每一行分配一个排名,如果有并列的值,则排名相同。

-DENSE_RANK:为每一行分配一个排名,如果有并列的值,则排名可以重复。

-LEAD:返回指定行后的值。

-LAG:返回指定行前的值。

上述函数只是Oracle提供的一小部分功能,Oracle还提供了许多其他有用的函数。

oracle 数值比较函数

oracle 数值比较函数

oracle 数值比较函数Oracle数据库中的数值比较函数可以帮助我们方便地进行数值之间的比较,从而实现对数据的有效处理。

以下将介绍一些常用的Oracle数值比较函数及其应用实例。

1.Oracle数值比较函数概述在Oracle中,数值比较函数主要用于对两个数值进行比较,返回比较结果。

这些函数可以应用于WHERE子句、HAVING子句等,以便在查询过程中对数据进行筛选。

2.常用的Oracle数值比较函数- GREATEST(最大值):比较两个数值,返回较大值。

- LEAST(最小值):比较两个数值,返回较小值。

- ABS(绝对值):计算数值的绝对值。

- ROUND(四舍五入):对数值进行四舍五入处理。

- TRUNC(截断):截断数值的小数部分。

- MOD(取模):计算两个数值的余数。

3.函数实例及应用实例1:查询员工工资高于10000的记录```sqlSELECT * FROM employeeWHERE salary > 10000;```实例2:查询订单金额小于100元的记录```sqlSELECT * FROM orderWHERE amount < 100;```实例3:计算员工年龄的平方根```sqlSELECT sqrt(age) FROM employee;```4.注意事项在使用Oracle数值比较函数时,需要注意以下几点:- 确保比较的数值类型相同,否则可能导致比较结果错误。

- 结合实际情况选择合适的比较函数,以提高查询效率。

- 在使用比较函数时,注意查询性能,避免过度使用导致系统负载过高。

总之,Oracle数据库中的数值比较函数为我们提供了丰富的比较方式,能够满足各种场景的需求。

oracle 常用字符串函数

oracle 常用字符串函数

Oracle常用字符串函数详解字符串是在任何编程语言中都必不可少的数据类型之一。

Oracle数据库提供了一系列的字符串函数来处理和操作字符串数据。

本文将介绍Oracle常用的字符串函数,并详细解释它们的定义、用途和工作方式。

以下是我们将要讨论的函数:1.LENGTH2.SUBSTR3.INSTR4.CONCAT5.UPPER6.LOWER7.TRIM8.REPLACE9.TRANSLATE10.LPAD11.RPAD12.LTRIM13.RTRIM14.SOUNDEX1. LENGTHLENGTH函数用于获取字符串的长度,返回字符串中字符的个数。

它的语法如下:LENGTH(string)string参数是要获取长度的字符串。

返回值是一个整数,代表字符串的长度。

例如:SELECT LENGTH('Hello, World!') FROM dual;运行上述SQL语句后,将返回结果15,因为字符串中有15个字符。

2. SUBSTRSUBSTR函数用于提取字符串的子串。

它的语法如下:SUBSTR(string, start_position, [length])string参数是要提取子串的字符串,start_position参数是子串在字符串中的起始位置(起始位置从1开始),length参数是要提取的子串的长度。

如果省略length 参数,则将提取从start_position到字符串结尾的子串。

例如:SELECT SUBSTR('Hello, World!', 8) FROM dual;运行上述SQL语句后,将返回结果”World!“,因为从字符串的第8个字符开始提取子串。

3. INSTRINSTR函数用于查找子串在字符串中第一次出现的位置。

它的语法如下:INSTR(string, substring, [start_position, [occurrence]])string参数是要查找的字符串,substring参数是要定位的子串,start_position参数是在字符串中开始搜索的位置,默认为1,occurrence参数是要定位的子串在字符串中的第几次出现,默认为1。

oracle常用sql函数

oracle常用sql函数

oracle常用sql函数Oracle是一款非常优秀的数据库管理系统,它提供了很多强大的功能与工具,其中最基本而实用的功能就是SQL函数了。

下面我们将重点介绍一些常用的Oracle SQL函数,帮助读者更好地了解和掌握这些常用的函数,从而更加有效地处理和管理数据。

一、数值型函数1. ABS()函数:用于计算数值的绝对值,比如ABS(-10)会返回10。

2. CEIL()函数:用于向上取整,比如CEIL(3.14)会返回4。

3. FLOOR()函数:用于向下取整,比如FLOOR(3.14)会返回3。

4. MOD()函数:用于求模,比如MOD(12,5)会返回2。

5. ROUND()函数:用于四舍五入,比如ROUND(3.49)会返回3,而ROUND(3.51)会返回4。

二、字符型函数1. CONCAT()函数:用于连接两个字符串,比如CONCAT('hello','world')会返回helloworld。

2. SUBSTR()函数:用于截取字符串,比如SUBSTR('hello',2,3)会返回ell。

3. UPPER()函数:用于将字符串转换成大写,比如UPPER('hello')会返回HELLO。

4. LOWER()函数:用于将字符串转换成小写,比如LOWER('HELLO')会返回hello。

5. TRIM()函数:用于去掉字符串首尾的空格,比如TRIM(' hello ')会返回hello。

三、日期型函数1. CURRENT_DATE函数:用于获取当前日期,比如SELECT CURRENT_DATE FROM DUAL会返回当前日期。

2. SYSDATE函数:用于获取系统当前时间,比如SELECTSYSDATE FROM DUAL会返回系统当前时间。

3. TO_CHAR()函数:用于将日期转换成字符型,比如TO_CHAR(SYSDATE,'yyyy-mm-dd')会返回当前日期的年月日格式。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Oracle函数
Oracle SQL提供了用于执行特定操作的专用函数,这些函数大大增强了SQL语言的功能。

函数可以接受零个或者多个输入参数,并返回一个输出结果。

Oracle数据库中主要使用两种类型的函数:
1.单行函数:对每一个函数应用在表的记录中时,只能输入一行结果,返回一个结
果,比如:MOD(x,y)返回x除以y的余数(x和y可以是两个整数,也可以是表中
的整数列)。

常用的单行函数有:
字符函数:对字符串操作。

数字函数:对数字进行计算,返回一个数字。

转换函数:可以将一种数据类型转换为另外一种数据类型。

日期函数:对日期和时间进行处理。

2.聚合函数:聚合函数同时可以对多行数据进行操作,并返回一个结果。

比如SUM(x)
返回结果集中x列的总合。

目录大纲
Oracle函数 (1)
✧字符函数 (2)
✧数字函数 (3)
✧日期函数 (4)
✧转换函数 (6)
✧其他单行函数 (8)
✧聚合函数 (9)
字符函数接受字符参数,这些参数可以是表中的列,也可以是一个字符串表达式。

下表列出了常用的字符函数。

表1 字符函数
表2 字符函数示例
数字函数接受数字参数,参数可以来自表中的一列,也可以是一个数字表达式。

表3 数字函数
说明:
1.ROUND(X[,Y]),四舍五入。

在缺省y时,默认y=0;比如:ROUND(3.56)=4。

y是正整数,就是四舍五入到小数点后y位。

ROUND(5.654,2)=5.65。

y是负整数,四舍五入到小数点左边|y|位。

ROUND(351.654,-2)=400。

2.TRUNC(x[,y]),直接截取,不四舍五入。

在缺省y时,默认y=0;比如:TRUNC (3.56)=3。

y是正整数,就是四舍五入到小数点后y位。

TRUNC (5.654,2)=5.65。

y是负整数,四舍五入到小数点左边|y|位。

TRUNC (351.654,-2)=300。

日期函数对日期进行运算。

常用的日期函数有:
1.ADD_MONTHS(d,n),在某一个日期d上,加上指定的月数n,返回计算后的新日期。

d表示日期,n表示要加的月数。

图1 ADD_MONTHS函数示例
ST_DAY(d),返回指定日期当月的最后一天。

图2 LAST_DAY函数示例
3.ROUND(d[,fmt]),返回一个以fmt为格式的四舍五入日期值,d是日期,fmt是格式
模型。

默认fmt为DDD,即月中的某一天。

如果fmt为“YEAR”则舍入到某年的1月1日,即前半年舍去,后半年作为下一年。

如果fmt为“MONTH”则舍入到某月的1日,即前月舍去,后半月作为下一月。

默认为“DDD”,即月中的某一天,最靠近的天,前半天舍去,后半天作为第二天。

如果fmt为“DAY”则舍入到最近的周的周日,即上半周舍去,下半周作为下一周周日。

图3 ROUND函数示例
与ROUND对应的函数时TRUNC(d[,fmt])对日期的操作,TRUNC与ROUND非常相似,只是不对日期进行舍入,直接截取到对应格式的第一天。

4.EXTRACT(fmt FROM d),提取日期中的特定部分。

fmt为:YEAR、MONTH、DAY、HOUR、MINUTE、SECOND。

其中YEAR、MONTH、DAY 可以为DATE类型匹配,也可以与TIMESTAMP类型匹配;但是HOUR、MINUTE、SECOND必须与TIMESTAMP类型匹配。

HOUR匹配的结果中没有加上时区,因此在中国运行的结果小8小时。

图4 EXTRACT函数示例
转换函数
转换函数将值从一种数据类型转换为另外一种数据类型。

常用的转换函数有:
1.TO_CHAR(d|n[,fmt])
把日期和数字转换为制定格式的字符串。

fmt是格式化字符串,日期的格式化字符串前面已经学习过。

代码演示:TO_CHAR对日期的处理
SQL> SELECT TO_CHAR(SYSDATE,'YYYY"年"MM"月"DD"日" HH24:MI:SS') "date" ①
2 FROM DUAL;
date
-----------------------
2009年08月11日12:06:00
代码解析:
①在格式化字符串中,使用双引号对非格式化字符进行引用。

针对数字的格式化,格式化字符有:
表4 数字格式化字符
代码演示:TO_CHAR对数字的处理
SQL> SELECT TO_CHAR(-123123.45,'L9.9EEEEPR') "date"
2 FROM DUAL
3 /
date
--------------------
<¥1.2E+05>
2.TO_DATE(x [,fmt])
把一个字符串以fmt格式转换为一个日期类型,前面已经学习过。

3.TO_NUMBER(x[,fmt])
把一个字符串以fmt格式转换为一个数字。

fmt格式字符参考表3。

代码演示:TO_NUM函数
SQL> SELECT TO_NUMBER('-$12,345.67','$99,999.99') "NUM"
2 FROM DUAL
3 /
NUM
---------------
-12345.67
其他单行函数
1.NVL(x,value)
如果x为空,返回value,否则返回x。

案例7:对工资是2000元以下的员工,如果没有发奖金,每人奖金100元。

代码演示:NVL函数
SQL> SELECT ENAME,JOB,SAL,NVL(COMM,100) FROM EMP WHERE SAL<2000;
ENAME JOB SAL NVL(COMM,100)
SMITH CLERK 800 100
ALLEN SALESMAN 1600 300
WARD SALESMAN 1250 500
MARTIN SALESMAN 1250 1400
TURNER SALESMAN 1500 50
ADAMS CLERK 1100 100
JAMES CLERK 950 100
7 rows selected
2.NVL2(x,value1,value2)
如果x非空,返回value1,否则返回value2。

案例8:对EMP表中工资为2000元以下的员工,如果没有奖金,则奖金为200元,如果有奖金,则在原来的奖金基础上加100元。

代码演示:NVL2函数
SQL> SELECT ENAME,JOB,SAL,NVL2(COMM,comm+100,200) "comm"
2 FROM EMP WHERE SAL<2000;
ENAME JOB SAL comm
SMITH CLERK 800 200
ALLEN SALESMAN 1600 400
WARD SALESMAN 1250 600
MARTIN SALESMAN 1250 1500
TURNER SALESMAN 1500 150
ADAMS CLERK 1100 200
JAMES CLERK 950 200
MILLER CLERK 1300 200
8 rows selected
聚合函数
聚合函数同时对一组数据进行操作,返回一行结果,比如计算一组数据的总和,平均值等。

表 5 聚合函数
案例9:求本月所有员工的基本工资总和。

代码演示:SUM函数
SQL> select sum(sal) from emp;
SUM(SAL)
----------------
29025
案例10:求不同部门的平均工资。

代码演示:AVG函数下的分组查询
SQL> SELECT DEPTNO,AVG(SAL) FROM EMP GROUP BY DEPTNO;
DEPTNO AVG(SAL)
--------- ----------
30 1566.66666
20 2175
10 2916.66666。

相关文档
最新文档