AAA-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中常用的函数与表达式

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 ()函数——返回数字的绝对值

ORACLE常用函数汇总

ORACLE常用函数汇总

ORACLE常用函数汇总Oracle是一种常用的关系型数据库管理系统,它提供了许多方便的函数来处理和操作数据。

以下是一些常用的Oracle函数的汇总:1.字符串函数:-CONCAT:用于连接两个字符串。

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

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

-LENGTH:返回字符串的长度。

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

2.数值函数:-ABS:返回数字的绝对值。

-ROUND:返回一个四舍五入的数字。

-TRUNC:返回数字的整数部分。

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

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

-TO_CHAR:将日期转换为特定的格式。

-TO_DATE:将字符串转换为日期。

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

-MONTHS_BETWEEN:返回两个日期之间的月份数。

4.聚合函数:-SUM:计算指定列的总和。

-AVG:计算指定列的平均值。

-COUNT:计算指定列的行数。

-MAX:返回指定列的最大值。

-MIN:返回指定列的最小值。

5.条件函数:-NVL:用于将空值替换为指定的值。

-NULLIF:如果两个表达式相等,则返回空值;否则返回第一个表达式的值。

-COALESCE:返回第一个非空表达式的值。

-CASE:对满足条件的表达式进行分支处理。

6.集合函数:-UNION:将两个结果集合并成一个结果集。

-INTERSECT:返回两个结果集的交集。

-MINUS:返回第一个结果集中不在第二个结果集中的行。

7.窗口函数:-ROW_NUMBER:为查询结果中的每一行分配一个唯一的行号。

-RANK:根据指定的列对结果进行排序,并为相同值的行分配相同的排名。

-DENSE_RANK:根据指定的列对结果进行排序,并为相同值的行分配连续的排名。

8.系统函数:-USER:返回当前用户的名称。

-CURRENT_TIMESTAMP:返回当前的日期和时间。

-SYSTIMESTAMP:返回当前的日期和时间,包括时区信息。

Oracle函数大全

Oracle函数大全
1
31.SIGH
蛮Ρタ┒
SQL> select sin(20),sinh(20) from dual;
SIN(20) SINH(20)
--------- ---------
.91294525 242582598
32.SQRT
计n
SQL> select sqrt(64),sqrt(10) from dual;
-- -
化 A
3.CONCAT
硈钡ㄢ﹃;
SQL> select concat('010-','88888888')||'锣23' 蔼爱膙筿杠 from dual;
蔼爱膙筿杠
----------------
010-88888888锣23
4.INITCAP
﹃盢﹃材ダ跑糶;
LOG(2,1) LOG(2,4)
--------- ---------
0 2
26.MOD(n1,n2)
n1埃n2緇计
SQL> select mod(10,3),mod(3,3),mod(2,3) from dual;
MOD(10,3) MOD(3,3) MOD(2,3)
CEIL(3.1415927)
---------------
4
20.COS
倒﹚计┒
SQL> select cos(-3.1415927) from dual;
COS(-3.1415927)
---------------
-1
21.COSH
计は┒
SQL> select cosh(20) from dual;

oracle常用函数使用大全_最新整理

oracle常用函数使用大全_最新整理
oracle常 用函数使 用大全
单值函 数在查询 中返回单 个值,可 被应用到 select, where子 句,start with以及 connect by 子句 和having 子句。 (一).数值 型函数 (Number Functions ) 数值型函 数输入数 字型参数 并返回数 值型的值 。多数该 类函数的 返回值支 持38位小 数点,诸 如:COS, COSH, EXP, LN, LOG, SIN, SINH, SQRT, TAN, and TANH 支 持36位小 数点。 ACOS, ASIN, ATAN, and ATAN2支 持30位小
n1<0,则 oracle从 右向左数 确认起始 位置 例如: SELECT SUBSTR( 'What is this',-5,3) FROM DUAL;
n1>c1.len gth则返 回空 例如: SELECT SUBSTR( 'What is this',50,3) FROM DUAL; 然后再请 你猜猜, 如果 n2<1,会 如何返回 值呢
3、 TRUNC(n 1[,n2] 返 回截尾到 n2位小数 的n1的 值,n2缺 省设置为 0,当n2为 缺省设置 时会将n1 截尾为整 数,如果 n2为负 值,就截 尾在小数 点左边相 应的位上 。 例如: SELECT TRUNC(2 3.56),TRU NC(23.56, 1),TRUNC (23.56,-1) FROM DUAL;
例如: SELECT REPLAC E('WWhhh hhaT is tHis w W','W','-') FROM
9、 SOUNDE X(c) 神奇 的函数 啊,该函 数返回字 符串参数 的语音表 示形式, 对于比较 一些读音 相同,但 是拼写不 同的单词 非常有用 。计算语 音的算法 如下:

(完整版)ORACLE函数大全

(完整版)ORACLE函数大全

ORACLE函数大全SQL中的单记录函数1.ASCII返回与指定的字符对应的十进制数;SQL〉 select ascii('A')A,ascii(’a') a,ascii('0’) zero,ascii(' ') space from dual;A A ZERO SPACE————-——-— -—---———- ---—----- ---————-—65 97 48 322.CHR给出整数,返回对应的字符;SQL〉 select chr(54740) zhao,chr(65) chr65 from dual;ZH C—— -赵 A3.CONCAT连接两个字符串;SQL> select concat('010—’,'88888888')||'转23’高乾竞电话 from dual;高乾竞电话—-——-———-—--——-—010—88888888转234.INITCAP返回字符串并将字符串的第一个字母变为大写;SQL〉 select initcap('smith’) upp from dual;UPP—————Smith5.INSTR(C1,C2,I,J)在一个字符串中搜索指定的字符,返回发现指定的字符的位置;C1 被搜索的字符串C2 希望搜索的字符串I 搜索的开始位置,默认为1J 出现的位置,默认为1SQL> select instr(’oracle traning’,’ra',1,2) instring from dual;INSTRING—-—------96.LENGTH返回字符串的长度;SQL> select name,length(name),addr,length(addr),sal,length(to_char(sal)) from gao.nchar_tst;NAME LENGTH(NAME) ADDR LENGTH(ADDR) SALLENGTH(TO_CHAR(SAL))————-———---————-—- —--——---——----—- -———--—-—-—— ----———-————----—-——--—--—---高乾竞 3 北京市海锭区 6 9999.99 77。

oracle 函数的用法

oracle 函数的用法

oracle 函数的用法Oracle 是一个非常强大的数据库管理系统,它提供了丰富的函数库,可以让我们在SQL 语句中使用各种函数来实现数据处理、计算和查询。

本文将给大家介绍一些常用的Oracle 函数及其用法。

一、字符串函数1. UPPER 函数:将字符串转换为大写字母。

SELECT UPPER('hello world!') FROM DUAL;结果为:HELLO WORLD!结果为:hello world!3. INSTR 函数:查找子字符串在字符串中第一次出现的位置。

结果为:54. SUBSTR 函数:截取字符串的一部分。

5. REPLACE 函数:将字符串中的某个子串替换为另一个子串。

二、数值函数1. ROUND 函数:将指定的数字四舍五入到指定的小数位数。

3. ABS 函数:计算数字的绝对值。

4. SIGN 函数:返回数字的符号,如果为正数返回 1,为负数返回 -1,为零返回 0。

SELECT SIGN(-10), SIGN(10), SIGN(0) FROM DUAL;结果为:-1 1 05. POWER 函数:计算一个数的指定次幂。

三、日期函数1. SYSDATE 函数:返回当前系统日期和时间。

SELECT SYSDATE FROM DUAL;2. MONTHS_BETWEEN 函数:计算两个日期之间相差的月数。

SELECT MONTHS_BETWEEN('2022-01-01', '2021-01-01') FROM DUAL;3. ADD_MONTHS 函数:对指定日期增加指定的月数。

4. TRUNC 函数:截取日期到指定的精度,例如截取到月份。

5. TO_CHAR 函数:将日期类型转换为字符串类型。

SELECT TO_CHAR(SYSDATE, 'yyyy-mm-dd hh24:mi:ss') FROM DUAL;结果为:2021-08-01 14:00:00四、聚合函数1. COUNT 函数:计算查询结果集中的行数。

ORACLE常用函数功能演示

ORACLE常用函数功能演示

ORACLE常用函数功能演示文档撰写:孟祥新写在前面:ORACLE内置函数,相当于C语言中的库函数,提供了常规数据库编程中所需的绝大多数基本功能,并且通过函数的组合或嵌套使用,可以发挥其强大的功能。

由于这些内置函数都是由ORACLE公司的编程大家所写,而且其执行代码是内嵌在ORACLE数据库系统中的,因此其执行效率极高。

在数据库编程中能广泛使用ORACLE所提供的内置函数,将大大提高程序代码的执行效率。

“站在高人的肩膀上,将使你变得更高”。

演示之前的环境设置:为了在SQL*PLUS中直观地显示函数返回的结果,我将“头”信息先屏蔽掉。

操作如下:一、单行函数1.数值函数(1)三角函数①SIN、ASIN、SINH(正弦、反正弦、双曲正弦)②COS、ACOS、COSH(余弦、反余弦、双曲余弦)③TAN、ATAN、TANH(正切、反正切,双曲正切)(2)幂、方根及对数运算函数①POWER(m, n)(取m的n次幂)②SQRT(n)(取n的平方根)③EXP(n)(取自然对数底e的n次方根)④LN(n)(取n的自然对数)⑤LOG(m, n)(取以m为底n的对数)以上函数功能演示如下:(3)数值处理函数①ABS(n)(取绝对值)②SIGN(n)(符号函数)③CEIL(n)(取不小于n的最小整数)④FLOOR(n)(取不大于n的最大整数)⑤ROUND(n, [m])(按m精度对n进行4舍5入)⑥TRUNC(n, [m])(按m精度对n进行截取)⑦MOD(m, n)(取m除以n的余数)以上函数功能演示如下:2.字符处理函数(1)对字符串的大小写处理的函数①INITCAP(功能:将字符串中每个单词的首字母,变换为大写。

)②UPPER(功能:将字符串中的所有字母,转换为大写。

)③LOWER(功能:将字符串中的所有字母,转换为小写。

)以上函数功能演示如下:(2)对字符串进行处理的函数①CONCAT(字符串连接函数,也可用|| 替代)功能演示如下:②ASCII(取字符的编码)③CHR(将编码转换为对应的字符)以上函数功能演示如下:④LTRIM(去除左侧空格/指定字符)⑤RTRIM(去除右侧空格/指定字符)⑥TRIM(去除两侧的空格/去除指定字符)以上函数去除空格功能演示如下:以上函数去除指定字符功能演示如下:请注意:在用TRIM去除字符串中指定字符(非空格)时的特殊用法。

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

Oracle常用及非常用函数详解转载自:/blog/192292感于总有些网友提出一些非常基础的问题,比如有没有实现某某功能的函数啊,某某函数是做什么用的啊,格式是什么等等,同时也感受到自己对oracle函数认识的不足,于是集中月余时间专注于oracle函数,小有心得不敢私藏,发之与诸公共享。

本文并不准备介绍全部的oracle函数,当前情势下,俺也还没这个时间,需要学习的东西太多了,要把多数时间花在学习经常能用上的技术方面:),所以如果是准备深入了解所有oracle函数的朋友,还是去关注:Oracle SQL Reference官方文档更靠谱一些。

本文更多将会介绍三思在日常中经常会用到的,或者虽然很少用到,但是感觉挺有意思的一些函数。

分二类介绍,分别是:著名函数篇-经常用到的函数非著名函数篇-即虽然很少用到,但某些情况下却很实用注:N表示数字型,C表示字符型,D表示日期型,[ ]表示内中参数可被忽略,fmt表示格式。

单值函数在查询中返回单个值,可被应用到select,where子句,start with以及connect by 子句和having子句。

(一).数值型函数(Number Functions)数值型函数输入数字型参数并返回数值型的值。

多数该类函数的返回值支持38位小数点,诸如:COS, COSH, EXP, LN, LOG, SIN, SINH, SQRT, TAN, and TANH 支持36位小数点。

ACOS, ASIN, ATAN, and ATAN2支持30位小数点。

1、MOD(n1,n2) 返回n1除n2的余数,如果n2=0则返回n1的值。

例如:SELECT MOD(24,5) FROM DUAL;2、ROUND(n1[,n2]) 返回四舍五入小数点右边n2位后n1的值,n2缺省值为0,如果n2为负数就舍入到小数点左边相应的位上(虽然oracle documents上提到n2的值必须为整数,事实上执行时此处的判断并不严谨,即使n2为非整数,它也会自动将n2取整后做处理,但是我文档中其它提到必须为整的地方需要特别注意,如果不为整执行时会报错的)。

例如:SELECT ROUND(23.56),ROUND(23.56,1),ROUND(23.56,-1) FROM DUAL;3、TRUNC(n1[,n2] 返回截尾到n2位小数的n1的值,n2缺省设置为0,当n2为缺省设置时会将n1截尾为整数,如果n2为负值,就截尾在小数点左边相应的位上。

例如:SELECT TRUNC(23.56),TRUNC(23.56,1),TRUNC(23.56,-1) FROM DUAL;(二).字符型函数返回字符值(Character Functions Returning Character Values)该类函数返回与输入类型相同的类型。

返回的CHAR类型值长度不超过2000字节;返回的VCHAR2类型值长度不超过4000字节;如果上述应返回的字符长度超出,oracle并不会报错而是直接截断至最大可支持长度返回。

返回的CLOB类型值长度不超过4G;对于CLOB类型的函数,如果返回值长度超出,oracle不会返回任何错误而是直接抛出错误。

1、LOWER(c) 将指定字符串内字符变为小写,支持CHAR,VARCHAR2,NCHAR,NVARCHAR2,CLOB,NCLOB类型例如:SELECT LOWER('WhaT is tHis') FROM DUAL;2、UPPER(c) 将指定字符串内字符变为大写,支持CHAR,VARCHAR2,NCHAR,NVARCHAR2,CLOB,NCLOB类型例如:SELECT UPPER('WhaT is tHis') FROM DUAL;3、LPAD(c1,n[,c2]) 返回指定长度=n的字符串,需要注意的有几点:如果n<c1.length则从右到左截取指定长度返回;如果n>c1.length and c2 is null,以空格从左向右补充字符长度至n并返回;如果n>c1.length and c2 is not null,以指定字符c2从左向右补充c1长度至n并返回;例如:SELECT LPAD('WhaT is tHis',5),LPAD('WhaT is tHis',25),LPAD('WhaT is tHis',25,'-') FROM DUAL;最后大家再猜一猜,如果n<0,结果会怎么样4、RPAD(c1,n[,c2]) 返回指定长度=n的字符串,基本与上同,不过补充字符是从右向左方向正好与上相反;例如:SELECT RPAD('WhaT is tHis',5),RPAD('WhaT is tHis',25),RPAD('WhaT is tHis',25,'-') FROM DUAL;5、TRIM([[LEADING||TRAILING||BOTH] c2 FROM] c1) 哈哈,被俺无敌的形容方式搞晕头了吧,这个地方还是看图更明了一些。

看起来很复杂,理解起来很简单:如果没有指定任何参数则oracle去除c1头尾空格例如:SELECT TRIM(' WhaT is tHis ') FROM DUAL;如果指定了c2参数,则oracle去掉c1头尾c2(这个建议细致测试,有多种不同情形的哟)例如:SELECT TRIM('W' FROM 'WhaT is tHis w W') FROM DUAL;如果指定了leading参数则会去掉c1头部c2例如:SELECT TRIM(leading 'W' FROM 'WhaT is tHis w W') FROM DUAL;如果指定了trailing参数则会去掉c1尾部c2例如:SELECT TRIM(trailing 'W' FROM 'WhaT is tHis w W') FROM DUAL;如果指定了both参数则会去掉c1头尾c2(跟不指定有区别吗?没区别!)例如:SELECT TRIM(both 'W' FROM 'WhaT is tHis w W') FROM DUAL;注意:c2长度=16、LTRIM(c1[,c2]) 千万表以为与上面那个长的像,功能也与上面的类似,本函数是从字符串c1左侧截取掉与指定字符串c2相同的字符并返回。

如果c2为空则默认截取空格。

例如:SELECT LTRIM('WWhhhhhaT is tHis w W','Wh') FROM DUAL;7、RTRIM(c1,c2)与上同,不过方向相反例如:SELECT RTRIM('WWhhhhhaT is tHis w W','W w') FROM DUAL;8、REPLACE(c1,c2[,c3]) 将c1字符串中的c2替换为c3,如果c3为空,则从c1中删除所有c2。

例如:SELECT REPLACE('WWhhhhhaT is tHis w W','W','-') FROM DUAL;9、SOUNDEX(c) 神奇的函数啊,该函数返回字符串参数的语音表示形式,对于比较一些读音相同,但是拼写不同的单词非常有用。

计算语音的算法如下:保留字符串首字母,但删除a、e、h、i、o、w、y。

将下表中的数字赋给相对应的字母:1:b、f、p、v2:c、g、k、q、s、x、z3:d、t4:l5:m、n6:R如果字符串中存在拥有相同数字的2个以上(包含2个)的字母在一起(例如b和f),或者只有h或w,则删除其他的,只保留1个;只返回前4个字节,不够用0填充例如:SELECT SOUNDEX('dog'),soundex('boy') FROM DUAL;10、SUBSTR(c1,n1[,n2]) 截取指定长度的字符串。

稍不注意就可能充满了陷阱的函数。

n1=开始长度;n2=截取的字符串长度,如果为空,默认截取到字符串结尾;λ如果n1=0 then n1=1λ如果n1>0,则oracle从左向右确认起始位置截取例如:SELECT SUBSTR('What is this',5,3) FROM DUAL;λ如果n1<0,则oracle从右向左数确认起始位置例如:SELECT SUBSTR('What is this',-5,3) FROM DUAL;λ如果n1>c1.length则返回空例如:SELECT SUBSTR('What is this',50,3) FROM DUAL;然后再请你猜猜,如果n2<1,会如何返回值呢11、TRANSLATE(c1,c2,c3) 就功能而言,此函数与replace有些相似。

但需要注意的一点是,translate 是绝对匹配替换,这点与replace函数具有非常大区别。

什么是绝对匹配替换呢?简单的说,是将字符串c1中按一定的格式c2替换为c3。

如果文字形容仍然无法理解,我们通过几具实例来说明:例如:SELECT TRANSLATE('What is this','','-') FROM DUAL;SELECT TRANSLATE('What is this','-','') FROM DUAL;结果都是空。

来试试这个:SELECT TRANSLATE('What is this',' ',' ') FROM DUAL;再来看这个:SELECT TRANSLATE('What is this','ait','-*') FROM DUAL;是否明白了点呢?Replace函数理解比较简单,它是将字符串中指定字符替换成其它字符,它的字符必须是连续的。

而translate中,则是指定字符串c1中出现的c2,将c2中各个字符替换成c3中位置顺序与其相同的c3中的字符。

明白了?Replace是替换,而translate则像是过滤(三).字符型函数返回数字值(Character Functions Returning Number Values)本类函数支持所有的数据类型1、INSTR(c1,c2[,n1[,n2]]) 返回c2在c1中位置c1:原字符串c2:要寻找的字符串n1:查询起始位置,正值表示从左到右,负值表示从右到左(大小表示位置,比如3表示左面第3处开始,-3表示右面第3处开始)。

相关文档
最新文档