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中常用的函数与表达式
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. SUBSTR函数SUBSTR函数用于从字符串中提取子字符串。
它的语法如下:SUBSTR(string, start_position, [length])其中,string是要提取子字符串的字符串,start_position是子字符串的起始位置,length是要提取的子字符串的长度(可选)。
如果省略length,则将提取从start_position开始的所有字符。
例如,以下语句将从字符串“Hello World”中提取“World”:SELECT SUBSTR('Hello World', 7) FROM dual;输出结果为:“World”。
2. INSTR函数INSTR函数用于查找字符串中某个子字符串的位置。
它的语法如下:INSTR(string, substring, [start_position], [nth_appearance])其中,string是要查找的字符串,substring是要查找的子字符串,start_position是查找的起始位置(可选),nth_appearance是要查找的子字符串的第几个出现位置(可选,默认为1)。
例如,以下语句将查找字符串“Hello World”中第一个出现的字母“o”的位置:SELECT INSTR('Hello World', 'o') FROM dual;输出结果为:5。
3. CONCAT函数CONCAT函数用于连接两个或多个字符串。
它的语法如下:CONCAT(string1, string2, ...)其中,string1、string2等是要连接的字符串。
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时间常⽤函数(字段取年、⽉、⽇、季度)TO_DATE格式Day:dd number 12dy abbreviated friday spelled out fridayddspth spelled out, ordinal twelfthMonth:mm number 03mon abbreviated marmonth spelled out marchYear:yy two digits 98yyyy four digits 199824⼩时格式下时间范围为: 0:00:00 - 23:59:59.... 12⼩时格式下时间范围为: 1:00:00 - 12:59:59 ....Y或YY或YYY 年的最后⼀位,两位或三位Select to_char(sysdate,’YYY’) from dual;002表⽰2002年SYEAR或YEAR SYEAR使公元前的年份前加⼀负号Select to_char(sysdate,’SYEAR’) from dual; -1112表⽰公元前111 2年Q 季度,1~3⽉为第⼀季度 Select to_char(sysdate,’Q’) from dual; 2表⽰第⼆季度①MM ⽉份数 Select to_char(sysdate,’MM’) from dual; 12表⽰12⽉RM ⽉份的罗马表⽰ Select to_char(sysdate,’RM’) from dual; IV表⽰4⽉Month ⽤9个字符长度表⽰的⽉份名 Select to_char(sysdate,’Month’) from dual; May后跟6个空格表⽰5⽉WW 当年第⼏周 Select to_char(sysdate,’WW’) from dual; 24表⽰2002年6⽉13⽇为第24周W 本⽉第⼏周 Select to_char(sysdate,’W’) from dual; 2002年10⽉1⽇为第1周DDD 当年第⼏, 1⽉1⽇为001,2⽉1⽇为032 Select to_char(sysdate,’DDD’) from dual; 363 2002年1 2⽉2 9⽇为第363天DD 当⽉第⼏天 Select to_char(sysdate,’DD’) from dual; 04 10⽉4⽇为第4天D 周内第⼏天 Select to_char(sysdate,’D’) from dual; 5 2002年3⽉14⽇为星期⼀DY 周内第⼏天缩写 Select to_char(sysdate,’DY’) from dual; SUN 2002年3⽉24⽇为星期天HH或HH12 12进制⼩时数 Select to_char(sysdate,’HH’) from dual;02 午夜2点过8分为02 HH24 24⼩时制 Select to_char(sysdate,’HH24’) from dual; 14 下午2点08分为14MI 分钟数(0~59) Select to_char(sysdate,’MI’) from dual; 17下午4点17分SS 秒数(0~59) Select to_char(sysdate,’SS’) from dual; 22 11点3分22秒提⽰注意不要将MM格式⽤于分钟(分钟应该使⽤MI)。
oracle 获取字段长度的函数
在Oracle数据库中,我们经常会遇到需要获取字段长度的需求。
在实际的数据库开发中,有时候需要对字段的长度进行验证、限制或者计算。
而在Oracle数据库中,我们可以借助一些内置函数来轻松地获取字段的长度信息。
本文将介绍一些常用的Oracle函数,用于获取字段长度的相关信息。
1. LENGTH函数LENGTH函数是Oracle中用于获取字符串长度的函数。
它的用法非常简单,只需要在函数的括号中传入要计算长度的字符串即可。
例如:```sqlSELECT LENGTH('Hello') FROM dual;```以上SQL语句将返回字符串'Hello'的长度,结果为5。
2. CHAR_LENGTH函数CHAR_LENGTH函数与LENGTH函数类似,也是用于获取字符串长度的函数。
不过它主要用于计算多字节字符的长度,对于单字节字符,与LENGTH函数的结果相同。
例如:```sqlSELECT CHAR_LENGTH('你好') FROM dual;```以上SQL语句将返回字符串'你好'的长度,结果为2。
3. 字段长度限制在数据库设计中,有时候需要对字段的长度进行限制。
这时可以通过数据库约束来实现。
使用CREATE TABLE或ALTER TABLE语句可以为字段添加长度约束,例如:```sqlCREATE TABLE users (username VARCHAR2(20));```以上SQL语句创建了一个名为users的表,其中的username字段长度被限制为20个字符。
4. 字段长度验证在数据库应用开发中,经常需要对用户输入的数据进行长度验证。
可以通过在应用程序中调用LENGTH函数来验证字段的长度是否符合要求。
例如在PL/SQL中可以这样写:```sqlIF LENGTH(input_string) > 10 THEN-- 执行相应的逻辑END IF;```以上代码会验证input_string的长度是否大于10,如果满足条件则执行相应的逻辑。
oracle常用的分析函数
oracle常⽤的分析函数常⽤的分析函数如下所列:row_number() over(partition by ... order by ...)rank() over(partition by ... order by ...)dense_rank() over(partition by ... order by ...)count() over(partition by ... order by ...)max() over(partition by ... order by ...)min() over(partition by ... order by ...)sum() over(partition by ... order by ...)avg() over(partition by ... order by ...)first_value() over(partition by ... order by ...)last_value() over(partition by ... order by ...)lag() over(partition by ... order by ...)lead() over(partition by ... order by ...)⼀、Oracle分析函数简介:在⽇常的⽣产环境中,我们接触得⽐较多的是OLTP系统(即Online Transaction Process),这些系统的特点是具备实时要求,或者⾄少说对响应的时间多长有⼀定的要求;其次这些系统的业务逻辑⼀般⽐较复杂,可能需要经过多次的运算。
⽐如我们经常接触到的电⼦商城。
在这些系统之外,还有⼀种称之为OLAP的系统(即Online Aanalyse Process),这些系统⼀般⽤于系统决策使⽤。
通常和数据仓库、数据分析、数据挖掘等概念联系在⼀起。
这些系统的特点是数据量⼤,对实时响应的要求不⾼或者根本不关注这⽅⾯的要求,以查询、统计操作为主。
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 语句中使用各种函数来实现数据处理、计算和查询。
本文将给大家介绍一些常用的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内置函数,相当于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去除字符串中指定字符(非空格)时的特殊用法。
oracle常用关键字和函数
oracle常⽤关键字和函数数据库的增删改查:增:insert into ... values();例:insert into p_emp values(sq_emp.nextval,'⼩⽩','保洁',7902,sysdate,600,null,30,0);commit;注意,表⾥边有多少列,values()⾥边的内容就有多少,⼀⼀对应关系。
后边加分号结束语句,然后commit;提交。
⾃增长序列:右击Sequences,new⼀个新的⾃增序列,起⼀个name,然后有⼀个nextval属性,实现⾃增长。
查:select ... from ...例:select t.*,t.rowid from p_emp t(⽤t代表p_emp),加上t.rowid,可以直接在表⾥进⾏修改。
单⾏语句可以不加分号!删除:delete ... where ...例:delete p_emp e where e.empon = 1;commit;从⼀个表⾥边删除某-⾏,地址是当empon = 1的那⼀⾏。
改:update 表 set 表.属性 = ... where 表.属性 = ...;update p_emp e set e.ename = '李华' where e.empon = 1;commit;数据库的常⽤关键字:1.in---:在某个范围内例⼦:select * from p_emp e where e.sal in(400,300,5000);查表p_emp的⼯资分别为400,300,5000,的那⼀⾏。
2.like---:模糊查询 %表⽰任意字符,_表⽰单个字符。
例⼦:select * from p_emp e where e.ename like 'T%';查询名字以t开头的,注意like后⾯必须加 ‘ ’,查询的为字符串的话,开头要⼤写。
oracle数学函数
oracle数学函数Oracle数学函数是Oracle数据库中提供的一组函数,用于进行数学运算和处理数值数据。
这些函数可以用于计算、转换和处理数值,使得数据处理更加灵活和高效。
本文将介绍几个常用的Oracle数学函数,并详细说明其用法和功能。
1. ROUND函数ROUND函数用于对数值进行四舍五入。
它接受两个参数,第一个参数是要进行四舍五入的数值,第二个参数是要保留的小数位数。
例如,ROUND(3.14159, 2)将返回3.14,表示将3.14159四舍五入到小数点后两位。
2. TRUNC函数TRUNC函数用于截断数值,即将数值的小数部分截断掉。
它接受两个参数,第一个参数是要进行截断的数值,第二个参数是要保留的小数位数。
例如,TRUNC(3.14159, 2)将返回3.14,表示将3.14159截断到小数点后两位。
3. MOD函数MOD函数用于计算两个数的余数。
它接受两个参数,第一个参数是被除数,第二个参数是除数。
例如,MOD(10, 3)将返回1,表示10除以3的余数为1。
4. POWER函数POWER函数用于计算一个数的幂。
它接受两个参数,第一个参数是底数,第二个参数是指数。
例如,POWER(2, 3)将返回8,表示计算2的3次幂。
5. SQRT函数SQRT函数用于计算一个数的平方根。
它接受一个参数,即要计算平方根的数值。
例如,SQRT(9)将返回3,表示计算9的平方根。
6. ABS函数ABS函数用于计算一个数的绝对值。
它接受一个参数,即要计算绝对值的数值。
例如,ABS(-5)将返回5,表示计算-5的绝对值。
7. EXP函数EXP函数用于计算以自然对数为底的指数幂。
它接受一个参数,即要计算指数幂的数值。
例如,EXP(1)将返回2.71828,表示计算e 的1次幂。
8. LOG函数LOG函数用于计算一个数的自然对数。
它接受一个参数,即要计算自然对数的数值。
例如,LOG(10)将返回2.30259,表示计算以e 为底的对数。
oracle数学函数
oracle数学函数Oracle数据库提供了许多用于数学计算和数值操作的函数。
本文将介绍Oracle中的一些常用数学函数,包括四舍五入、取绝对值、取余数、求平方根、指数和对数等。
一、四舍五入函数1.ROUNDROUND函数用于四舍五入到指定的位数。
以下是ROUND函数的一些常见用法:ROUND(number):将number四舍五入到最近的整数。
ROUND(number, decimal_places):将number四舍五入到指定的小数位数。
2.TRUNCTRUNC函数用于截断小数部分并保留整数部分。
以下是TRUNC函数的一些常见用法:TRUNC(number):将number截断到最近的整数。
TRUNC(number, decimal_places):将number截断到指定的小数位数。
二、取绝对值函数1.ABSABS函数用于取一个数的绝对值。
ABS(number):返回number的绝对值。
三、取余数函数1.MODMOD函数用于取两个数的余数。
MOD(dividend, divisor):返回dividend除以divisor的余数。
四、求平方根函数1.SQRTSQRT函数用于计算一个数的平方根。
SQRT(number):返回number的平方根。
五、指数和对数函数1.EXPEXP函数用于计算指定数的指数值。
EXP(number):返回e的number次幂,其中e是自然对数的底数。
2.LNLN函数用于计算指定数的自然对数。
LN(number):返回number的自然对数。
3.POWERPOWER函数用于计算一个数的指定次幂。
POWER(base, exponent):返回base的exponent次幂。
以上就是Oracle中一些常用的数学函数。
这些函数可以帮助开发者进行数学计算和数值操作,提高数据处理的灵活性和准确性。
使用合适的数学函数可以减少开发工作量,增加程序的效率和可读性。
Oracle常用函数nvl和decode小结
数值函数函数功能实例结果abs 求绝对值函数abs(−5) 5sqrt 求平方根函数sqrt(2) 1.41421356 power 求幂函数power(2,3) 8cos 求余弦三角函数cos(3.14159) −1mod 求除法余数mod(1600, 300) 100ceil 求大于等于某数的最小整数ceil(2.35) 3floor 求小于等于某数的最大整数floor(2.35) 2round 按指定精度对十进制数四舍五入round(45.923, 1)round(45.923, 0)round(45.923,−1)45.94650trunc 按指定精度截断十进制数trunc(45.923, 1)trunc(45.923)trunc(45.923,−1)45.94540字符函数函数名称功能实例结果ascii 获得字符的ASCII码Ascii('A') 65 chr 返回与ASCII码相应的字符Chr(65) Alower 将字符串转换成小写lower ('SQLCourse')sql courseupper 将字符串转换成大写upper('SQLCourse')SQL COURSEinitca p 将字符串转换成每个单词以大写开头initcap('SQLcourse')Sql Courseconcat 连接两个字符串concat('SQL', 'Course')SQL Coursesubstr 给出起始位置和长度,返回子字符串substr('String',1,3)Strlength 求字符串的长度length('Wellcom')7instr 给出起始位置和出现的次数,求子字符串在字符串中出现的位置instr('String','r',1,1)3lpad 用字符填充字符串左侧到指定长度lpad('Hi',10,'-')--------Hirpad 用字符填充字符串右侧到指定长度rpad('Hi',10,'-')Hi--------trim 在一个字符串中去除另一个字去除的字符只能在左边或者右trim('S' FROM'SSMITH')MITH边的第一个符串(trim 整洁、修整)replac e 用一个字符串替换另一个字符串中的子字符串replace('ABC','B', 'D')ADC日期函数函数功能实例结果months_between 返回两个日期间的月份months_between ('04-11月-05','11-1月-01')57.7741935add_months 返回把月份数加到日期上的新日期add_months('06-月-03',1)add_months('06-月-03',-1)06-3月-0306-1月-03next_day 返回指定日期后的星期对应的新日期selectnext_day(to_date('2009-12-02','YYYY-MM-DD'),'星期一')from dual;2009-12-7last_day 返回指定日期所在的月的最后一天last_day('06-2月-03') 28-2月-03round 按指定格式对日期进行四舍五入round(to_date('13-2月-03'),'YEAR')round(to_date('13-2月-03'),'MONTH')round(to_date('13-2月-03'),'DAY')01-1月-0301-2月-0316-2月-03(按周四舍五入)trunc 对日期按指定方式进行截断trunc(to_date('06-2月-03'),'YEAR')trunc(to_date('06-2月-03'),'MONTH')trunc(to_date('06-2月-03'),'DAY')01-1月-0301-2月-0302-2月-03(按周截断)关于日期转换例子:SELECT TO_CHAR(sysdate,'YYYY-MM-DD HH24:MI:SS AM DY') FROM dual;SELECT TO_CHAR(sysdate,'YYYY"年"MM"月"DD"日"') FROM dual;其他函数函数功能实例结果nvl 空值转换函数nvl(null, '空') 空decode 实现分支功能decode(1,1, '男',2,'女')男userenv 返回环境信息userenv('LANGUAGE') SIMPLIFIED CHINESE_CHINA.ZHS16GBKgreatest 返回参数的最大值greatest(20,35,18,9) 35least 返回参数的最小值least(20,35,18,9) 95.高级查询(多表联合查询)组函数函数说明A VG 求平均值COUNT 求计数值,返回非空行数,*表示返回所有行MAX 求最大值MIN 求最小值SUM 求和STDDEV 求标准偏差,是根据差的平方根得到的V ARIANCE 求统计方差例子:SELECT job 职务 , SUM(sal) 工资总和 FROM empWHERE job != 'PRESIDENT'GROUP BY jobHAVING SUM(sal)>4500ORDER BY SUM(sal);分析函数以下三个分析函数用于计算一个行在一组有序行中的排位,序号从1开始ROW_NUMBER返回连续的排位,不论值是否相等RANK具有相等值的行排位相同,序数随后跳跃DENSE_RANK 具有相等值的行排位相同,序号是连续的例子:SELECT deptno, ename, sal, comm, RANK() OVER(PARTITION BY deptno ORDER BY sal DESC, comm) RANKFROM emp;SELECT ename, job, deptno, sal, ROW_NUMBER() OVER(ORDER BY sal DESC) AS SAL_RANKFROM SCOTT.EMP;SELECT d.dname, e.ename, e.sal, DENSE_RANK()OVER (PARTITION BY e.deptno ORDER BY e.sal DESC)AS DENRANKFROM emp e, dept d WHERE e.deptno = d.deptno;集合运算操作描述UNION 并集,合并两个操作的结果,去掉重复的部分UNION ALL 并集,合并两个操作的结果,保留重复的部分MINUS 差集,从前面的操作结果中去掉与后面操作结果相同的部分INTERSECT 交集,取两个操作结果中相同的部分系统定义同义词表同义词对象名称作用DICT DICTIONARY 数据字典CAT USER_CATALOG用户拥有的表、视图、同义词和序列CLU USER_CLUSTERS用户拥有的聚簇IND USER_INDEXES用户拥有的索引OBJ USER_OBJECTS用户拥有的对象SEQ USER_SEQUENCES用户拥有的序列SYN USER_SYNONYMS用户拥有的私有同义词COLS USER_TAB_COLUMNS用户拥有的表、视图和聚簇的列TABS USER_TABLES用户拥有的表补充函数rollup()合计函数,求合计cube ()合计函数比前一个更详细例子(也可以叫交叉报表交叉报表)create table test(sales varchar2(10),dest varchar2(10),revenue number)insert into test values('smith','hangzhou',1000);insert into test values('smith','wenzhou',2000);insert into test values('allen','wenzhou',3000);insert into test values('allen','wenzhou',4000);SELECT sales, nvl(dest,'合计'),SUM(revenue)FROM test GROUP BY CUBE(sales, dest);SELECT sales, nvl(dest,'合计'),SUM(revenue)FROM test GROUP BY ROLLUP(sales, dest);比CUBE少2原因是没有对hangzhou、wenzou 的综合进行统计nullif(exp1,exp2)如果相等返回null 不相等返回第一个oracle中decode函数1.DECODE函数相当于一条件语句(IF).它将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值。
Oracle基础函数汇总
7
语法:lead(lag) (expression[,offsrt[,default])
8
over ([query partition clause] order by clause)
9
10
--累加合计
11
SUM(字段) over(PARTITION BY 字段 ORDER BY 字段 rows 10000000 preceding) AS
3
4 --avg 函数名
5 --(sal)是分析函数的参数,每个函数有0~3个参数,参数可以是表达式
6 --over 是一个关键字,用于标识分析函数
7 --partition by deptno 是可选的分区子句
8
9
10 --等级函数,排序
11 select t.c_store_id,sum(t.tot_qty),
9 --mod
--取余数
10 select mod(20,3)from dual; --2
11
12
13 --常用日期函数
14 /*--运算规律
15
日期 + 数值=日期
16
日期-数值=日期
17
日期-日期=数值(天数)
18 */
19 select sysdate,sysdate+2,sysdate-3,sysdate-
"字段名称"
12
---
13
with order_i as --临时表定义
14
1 --对账单预计算程序
2 CREATE OR REPLACE PROCEDURE rp_cusrecvcheck_generate(p_pi_id NUMBER) AS
oracle存储过程常用字符串处理函数
oracle存储过程常用字符串处理函数在Oracle中,常用的字符串处理函数有:
1.CONCAT:用于连接两个或多个字符串。
2.SUBSTR:用于提取字符串的一部分。
3.INSTR:用于查找字符串中特定子串的位置。
4.REPLACE:用于替换字符串中的指定子串。
5.UPPER:用于将字符串转换为大写。
6.LOWER:用于将字符串转换为小写。
7.INITCAP:用于将字符串的首字母转换为大写,其余字母转换为小写。
8.TRIM:用于删除字符串首尾的空格或指定字符。
9.LENGTH:用于返回字符串的长度。
10.LPAD:用于在字符串的左侧填充指定字符,使字符串达到指定长度。
11.RPAD:用于在字符串的右侧填充指定字符,使字符串达到指定长度。
12.TO_CHAR:用于将其他数据类型转换为字符类型。
13.TO_NUMBER:用于将字符类型转换为数字类型。
14.TO_DATE:用于将字符类型转换为日期类型。
15.REGEXP_REPLACE:用于使用正则表达式替换字符串中的指定内容。
以上是一些常用的字符串处理函数,在实际的存储过程中可以根据具
体的需求,选择合适的函数来进行字符串处理。
Oracle-常用通用函数、条件判断函数和多行函数
Oracle-常⽤通⽤函数、条件判断函数和多⾏函数Oracle-常⽤通⽤函数、条件判断函数和多⾏函数本⽂中⽤到的表:通⽤函数通⽤函数就是可以作⽤于任何类型的函数(参数类型可以是number或varchar2或date类型)1)NVL(a,b)如果a为null值,则取b为返回结果,否则返回a。
2)NVL2(a,b,c)如果a为null,则结果为b,否则结果为c。
3)NULLIF(a,b)在类型⼀致的情况下,如果a与b相同,返回NULL,否则返回a。
例如:⽐较10和10.0是否相同select NULLIF(10,’10’) from dual; ->错误,类型不⼀致条件判断函数1)case表达式case表达式是SQL99标准。
⼀个CASE表达式的默认返回值类型是任何返回值的相容集合类型,但具体情况视其所在语境⽽定。
如果⽤在字符串语境中,则返回结果味字符串。
如果⽤在数字语境中,则返回结果为⼗进制值、实值或整数值。
语法1:SELECTcase 字段when 条件1 then 表达式1when 条件2 then 表达式2else 表达式nend语法2:SELECTCASEWHEN 条件 THEN 表达式1 ELSE 表达式2 END;范例:SELECT CASE 1 WHEN 1 THEN ‘one’WHEN 2 THEN ‘two’ ELSE ‘more’ END; -> 结果为“one”SELECT CASE WHEN 1>0 THEN ‘true’ ELSE ‘false’ END; -> ‘true’具体范例:查询emp表,将职位是分析员的,⼯资+1000;职位是经理的,⼯资+800;职位是其它的,⼯资+400select ename “姓名”,job “职位”,sal “涨前⼯资”,case jobwhen ‘ANALYST’ then sal+1000when ‘MANAGER’ then sal+800else sal+400end “涨后⼯资”from emp;T12)decode()函数decode()函数是专属oracle的语法语法:decode(字段,条件1,表达式1,条件2,表达式2,…表达式n)还是上⾯那个问题,现在利⽤decode()函数来解决:select ename “姓名”,job “职位”,sal “涨前⼯资”,decode(job,’ANALYST’,sal+1000,’MANAGER’,sal+800,sal+400) “涨后⼯资”from emp;结果相同。
oracle中常用的函数
oracle中常用的函数Oracle是一种流行的关系型数据库管理系统,它提供了许多强大的函数来处理数据。
以下是Oracle中常用的函数:1. 字符串函数Oracle提供了许多字符串函数来处理文本数据。
其中一些常用的函数包括:- SUBSTR:用于提取字符串的一部分。
- INSTR:用于查找字符串中的子字符串。
- CONCAT:用于连接两个或多个字符串。
- REPLACE:用于替换字符串中的子字符串。
- UPPER和LOWER:用于将字符串转换为大写或小写。
2. 数值函数Oracle还提供了许多数值函数来处理数字数据。
其中一些常用的函数包括:- ROUND:用于将数字四舍五入到指定的小数位数。
- TRUNC:用于截断数字到指定的小数位数。
- MOD:用于计算两个数字的余数。
- ABS:用于计算数字的绝对值。
- SIGN:用于确定数字的符号。
3. 日期函数Oracle还提供了许多日期函数来处理日期和时间数据。
其中一些常用的函数包括:- SYSDATE:用于返回当前日期和时间。
- ADD_MONTHS:用于将指定的月数添加到日期中。
- MONTHS_BETWEEN:用于计算两个日期之间的月数。
- EXTRACT:用于提取日期中的特定部分,如年、月、日、小时、分钟等。
- TO_CHAR和TO_DATE:用于将日期和时间数据转换为字符串或从字符串转换为日期和时间数据。
4. 聚合函数Oracle还提供了许多聚合函数来计算数据的总和、平均值、最大值、最小值等。
其中一些常用的函数包括:- SUM:用于计算数值列的总和。
- AVG:用于计算数值列的平均值。
- MAX和MIN:用于查找数值列中的最大值和最小值。
- COUNT:用于计算行数或非空值的数量。
总结Oracle提供了许多强大的函数来处理数据。
这些函数可以帮助开发人员更轻松地处理和分析数据,从而提高应用程序的性能和可靠性。
熟练掌握这些函数可以使开发人员更加高效地编写SQL查询和存储过程。
oracle的字符串函数
oracle的字符串函数Oracle是一种广泛使用的关系型数据库管理系统,它提供了许多强大的函数来处理字符串。
在本文中,我将介绍一些常用的Oracle字符串函数。
1. CONCAT函数:CONCAT函数用于连接两个字符串。
它的语法是CONCAT(string1, string2),其中string1和string2是要连接的两个字符串。
例如,如果我们有两个字符串'Hello'和'World',我们可以使用CONCAT函数将它们连接起来,得到'HelloWorld'。
2. SUBSTR函数:SUBSTR函数用于提取字符串的子串。
它的语法是SUBSTR(string, start_position, length),其中string是要提取子串的字符串,start_position是子串的起始位置,length是子串的长度。
例如,如果我们有一个字符串'HelloWorld',我们可以使用SUBSTR函数提取出'World'这个子串,即SUBSTR('HelloWorld', 6, 5)。
3. LENGTH函数:LENGTH函数用于计算字符串的长度。
它的语法是LENGTH(string),其中string是要计算长度的字符串。
例如,如果我们有一个字符串'HelloWorld',我们可以使用LENGTH函数计算出它的长度,即LENGTH('HelloWorld'),结果为10。
4. UPPER函数:UPPER函数用于将字符串转换为大写。
它的语法是UPPER(string),其中string是要转换的字符串。
例如,如果我们有一个字符串'HelloWorld',我们可以使用UPPER函数将它转换为大写,即UPPER('HelloWorld'),结果为'HELLOWORLD'。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数值函数
日期函数
SELECT TO_CHAR(sysdate,'YYYY-MM-DD HH24:MI:SS AM DY') FROM dual; SELECT TO_CHAR(sysdate,'YYYY"年"MM"月"DD"日"') FROM dual;
其他函数
5.高级查询(多表联合查询)
例子:
SELECT job 职务 , SUM(sal) 工资总和 FROM emp
WHERE job != 'PRESIDENT'
GROUP BY job
HAVING SUM(sal)>4500
ORDER BY SUM(sal);
分析函数
以下三个分析函数用于计算一个行在一组有序行中的排位,序号从1开始
ROW_NUMBER返回连续的排位,不论值是否相等
RANK具有相等值的行排位相同,序数随后跳跃
DENSE_RANK 具有相等值的行排位相同,序号是连续的
例子:
SELECT deptno, ename, sal, comm, RANK() OVER
(PARTITION BY deptno ORDER BY sal DESC, comm) RANK
FROM emp;
SELECT ename, job, deptno, sal, ROW_NUMBER() OVER
(ORDER BY sal DESC) AS SAL_RANK
FROM SCOTT.EMP;
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;
rollup()合计函数,求合计
cube ()合计函数比前一个更详细
例子(也可以叫交叉报表交叉报表)
create table test(sales varchar2(10),dest varchar2(10),revenue number)
insert into test values('smith','hangzhou',1000);
insert into test values('smith','wenzhou',2000);
insert into test values('allen','wenzhou',3000);
insert into test values('allen','wenzhou',4000);
SELECT sales, nvl(dest,'合计'),SUM(revenue)FROM test GROUP BY CUBE(sales, dest);
SELECT sales, nvl(dest,'合计'),SUM(revenue)FROM test GROUP BY ROLLUP(sales, dest);
比CUBE少2原因是没有对hangzhou、wenzou 的综合进行统计
nullif(exp1,exp2)如果相等返回null 不相等返回第一个。