oracle常用函数列表速查 (1)
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函数
SQL> SELECT empno, ename, deptno
2 FROM
emp
3 WHERE ename = 'blake';
no rows selected
SQL> SELECT 2 FROM 3 WHERE
empno, ename, deptno emp ename = UPPER('blake');
学习改变命运,知 识创造未来
oracle函数
数值型函数
使用ceil函数: SELECT ceil(2.35) FROM dual; 执行结果: CEIL(2.35) ------------3 说明:该函数求得大于等于2.35的最小整数,结果
为3。
学习改变命运,知 识创造未来
oracle函数
数值型函数
--------------- -------------- -----------------
45.92
46
50
学习改变命运,知 识创造未来
oracle函数
使用 TRUNC函数
SQL> SELECT TRUNC(45.923,2), TRUNC(45.923),
2
TRUNC(45.923,-1)
45.92
ØMOD: 取余数 MOD(1600, 300) 100
学习改变命运,知 识创造未来
oracle函数
使用 ROUND 函数
SQL> SELECT ROUND(45.923,2), ROUND(45.923,0),
2
ROUND(45.923,-1)
3 FROM DUAL;
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 分组统计函数
oracle 分组统计函数Oracle是一种流行的关系型数据库管理系统,具有强大的分组统计函数,可以帮助用户轻松实现数据分析和汇总。
在本文中,我们将介绍几种常用的Oracle分组统计函数,并说明它们的用途和功能。
GROUP BY子句是SQL语句中用于对查询结果进行分组的重要部分。
在Oracle中,可以结合使用GROUP BY子句和聚合函数来实现数据的分组统计。
以下是几种常用的Oracle分组统计函数:1. COUNT函数:COUNT函数用于统计查询结果集中行的数量。
可以结合GROUP BY子句使用,以实现对分组数据的计数统计。
例如,可以使用COUNT(*)来统计每个分组中的行数,或者使用COUNT(column_name)来统计指定列中非空值的数量。
2. SUM函数:SUM函数用于计算指定列的合计值。
可以结合GROUP BY子句使用,以实现对分组数据的求和统计。
例如,可以使用SUM(column_name)来计算每个分组中指定列的合计值。
3. AVG函数:AVG函数用于计算指定列的平均值。
可以结合GROUP BY子句使用,以实现对分组数据的平均值统计。
例如,可以使用AVG(column_name)来计算每个分组中指定列的平均值。
4. MAX函数:MAX函数用于找出指定列的最大值。
可以结合GROUP BY子句使用,以实现对分组数据的最大值统计。
例如,可以使用MAX(column_name)来找出每个分组中指定列的最大值。
5. MIN函数:MIN函数用于找出指定列的最小值。
可以结合GROUP BY子句使用,以实现对分组数据的最小值统计。
例如,可以使用MIN(column_name)来找出每个分组中指定列的最小值。
除了上述常用的分组统计函数外,Oracle还提供了其他一些函数,如STDDEV、VARIANCE等,用于计算标准差和方差等统计指标。
这些函数可以帮助用户更全面地分析数据,发现数据的规律和趋势。
oracle 时间比较函数
oracle 时间比较函数Oracle 时间比较函数Oracle数据库是一种关系型数据库管理系统,它支持SQL语言。
在Oracle数据库中,时间比较函数被广泛使用,用于比较和操作日期和时间数据。
这些函数提供了一种简便的方式来处理时间数据,并允许我们在查询中进行各种时间操作。
在Oracle数据库中,有多个时间比较函数可供使用。
下面将介绍其中一些常用的函数。
1. SYSDATE函数SYSDATE函数返回当前日期和时间。
它返回一个日期类型的值,可以用于比较、计算和显示当前日期和时间。
以下是SYSDATE函数的示例用法:SELECT SYSDATE FROM dual;2. TO_DATE函数TO_DATE函数用于将字符串转换为日期类型。
它接受两个参数,第一个参数是要转换的字符串,第二个参数是指定输入字符串的格式。
以下是TO_DATE函数的示例用法:SELECT TO_DATE('2022-01-01', 'YYYY-MM-DD') FROM dual;3. ADD_MONTHS函数ADD_MONTHS函数用于在给定日期上添加指定的月份。
它接受两个参数,第一个参数是要添加的日期,第二个参数是要添加的月份数。
以下是ADD_MONTHS函数的示例用法:SELECT ADD_MONTHS(SYSDATE, 3) FROM dual;4. MONTHS_BETWEEN函数MONTHS_BETWEEN函数用于计算两个日期之间的月份数。
它接受两个参数,第一个参数是较大的日期,第二个参数是较小的日期。
以下是MONTHS_BETWEEN函数的示例用法:SELECT MONTHS_BETWEEN(TO_DATE('2022-01-01', 'YYYY-MM-DD'), SYSDATE) FROM dual;5. NEXT_DAY函数NEXT_DAY函数用于找到给定日期之后的下一个指定的星期几。
常用查询Oracle的表,视图,存储过程,用户等SQL命令
常⽤查询Oracle的表,视图,存储过程,⽤户等SQL命令有时候需要导出某⽤户下的所有table、view、sequence、trigger等信息,下⾯的SQL可以将这些信息select出来:select * from user_tables;select * from user_views;select * from user_sequences;select * from user_triggers;查看当前⽤户的缺省表空间 SQL>select username,default_tablespace from user_users; 查看当前⽤户的⾓⾊ SQL>select * from user_role_privs; 查看当前⽤户的系统权限和表级权限 SQL>select * from user_sys_privs; SQL>select * from user_tab_privs; 查看⽤户下所有的表 SQL>select * from user_tables;1、⽤户 查看当前⽤户的缺省表空间 SQL>select username,default_tablespace from user_users; 查看当前⽤户的⾓⾊ SQL>select * from user_role_privs; 查看当前⽤户的系统权限和表级权限 SQL>select * from user_sys_privs; SQL>select * from user_tab_privs; 显⽰当前会话所具有的权限 SQL>select * from session_privs; 显⽰指定⽤户所具有的系统权限 SQL>select * from dba_sys_privs where grantee=’GAME’;2、表 查看⽤户下所有的表 SQL>select * from user_tables; 查看名称包含log字符的表 SQL>select object_name,object_id from user_objects where instr(object_name,’LOG’)>0; 查看某表的创建时间 SQL>select object_name,created from user_objects where object_name=upper(‘&table_name’); 查看某表的⼤⼩ SQL>select sum(bytes)/(1024*1024) as “size(M)” from user_segments where segment_name=upper(‘&table_name’); 查看放在ORACLE的内存区⾥的表 SQL>select table_name,cache from user_tables where instr(cache,’Y')>0;3、索引 查看索引个数和类别 SQL>select index_name,index_type,table_name from user_indexes order by table_name; 查看索引被索引的字段 SQL>select * from user_ind_columns where index_name=upper(‘&index_name’); 查看索引的⼤⼩ SQL>select sum(bytes)/(1024*1024) as “size(M)” from user_segments where segment_name=upper(‘&index_name’);4、序列号 查看序列号,last_number是当前值 SQL>select * from user_sequences;5、视图 查看视图的名称 SQL>select view_name from user_views; 查看创建视图的select语句 SQL>set view_name,text_length from user_views; SQL>set long 2000; 说明:可以根据视图的text_length值设定set long 的⼤⼩ SQL>select text from user_views where view_name=upper(‘&view_name’);6、同义词 查看同义词的名称 SQL>select * from user_synonyms;7、约束条件 查看某表的约束条件 SQL>select constraint_name, constraint_type,search_condition, r_constraint_name from user_constraints where table_name = upper(‘&table_name’); SQL>select c.constraint_name,c.constraint_type,cc.column_name from user_constraints c,user_cons_columns cc where c.owner = upper(‘&table_owner’) and c.table_name = upper(‘&table_name’) and c.owner = cc.owner and c.constraint_name = cc.constraint_name order by cc.position;8、存储函数和过程 查看函数和过程的状态 SQL>select object_name,status from user_objects where object_type=’FUNCTION’; SQL>select object_name,status from user_objects where object_type=’PROCEDURE’; 查看函数和过程的源代码 SQL>select text from all_source where owner=user and name=upper(‘&plsql_name’);。
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函数大全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内置函数,相当于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的数组函数-回复Oracle的数组函数是一组在Oracle数据库中使用的能够处理数组数据的函数。
这些函数提供了强大的功能,使得在数据库中处理和操作数组数据变得更加简单和高效。
在本文中,我们将详细介绍Oracle的数组函数,并逐步解释其用法和功能。
为了更好地理解Oracle的数组函数,让我们先来了解什么是数组。
数组是一种数据结构,它可以存储多个相同类型的元素。
在数据库中,数组通常用于存储和处理大量的相似数据,例如一组数字或字符。
Oracle的数组函数提供了各种操作和处理数组数据的功能,从简单的查询和排序到更复杂的数据转换和聚合计算。
首先,让我们从数组的创建开始。
在Oracle中,可以使用数组函数来创建和初始化一个数组。
其中最常用的数组函数之一是`COLLECT`函数。
该函数用于从查询结果集中生成一个数组。
让我们看一个例子:sqlSELECT COLLECT(employee_name) AS namesFROM employees;上述查询将返回所有员工姓名的数组。
接下来,让我们探讨如何使用数组函数来操作和访问数组的元素。
Oracle 提供了一些用于查询和访问数组元素的函数,其中最常用的是`TABLE`函数。
`TABLE`函数用于将数组转换为一个虚拟表,以便可以在查询中访问和操作数组的元素。
例如:sqlSELECT column_valueFROM TABLE(names);上述查询将返回`names`数组中的所有元素。
除了查询和访问数组的元素外,Oracle的数组函数还提供了一些用于修改和操作数组的函数。
其中之一是`MULTISET`函数。
`MULTISET`函数用于在数组中添加或删除元素。
让我们看一个例子:sqlSELECT MULTISET(1, 2, 3) AS numbersFROM dual;上述查询将创建一个包含1、2和3的数组。
在数组操作方面,Oracle还提供了一些用于合并和分割数组的函数。
oracle数字函数(共22个)
oracle数字函数dual是一个"伪表",可以用来测试函数和表达式。
1、Round:四舍五入Round(45.926,2)→45.93Round(45.923,0)保留整数位,结果是46。
Round(45.923,-1)取整数位的第二位。
就是取十位,结果是50。
Round(45.923,-2)取整数位的第三位。
就是取百位,结果为0。
2、Trunc:数字截断Trunc(45.926,2)→45.92语法: TRUNC(x[,y])功能: 计算截尾到y位小数的x值. y缺省为0,结果变为一个整数值.如果y是一个负数,那么就截尾到小数点左边对应的位上.说明:该函数可以指定截取的位数,当不指定截取位时,它只截取小数占左边的数字。
3、Mod:求余语法: MOD(x,y)功能: 返回x除以y的余数.如果y是0,则返回xMod(1600,300)→1004、ABS语法: ABS(x)功能: 得到x的绝对值.SQL> select abs(1) a,abs(0) b,abs(-1) c,abs(-0.1) d from dualA B C D---------- ---------- ---------- ----------1 0 1 .15、CEIL语法: CEIL(x)功能: 计算大于或等于x的最小整数值.SQL> select ceil(0.3) a,ceil(0.5) b,ceil(0.8) c,ceil(0) d from dualA B C D---------- ---------- ---------- ----------1 1 1 06、FLOOR语法: FLOOR(x)功能: 返回小于等于x的最大整数值.SQL> select floor(0.3) a,floor(0.5) b,floor(0.8) c,floor(0) d from dualA B C D---------- ---------- ---------- ------------------0 0 0 07、ACOS语法: ACOS(x)功能: 返回x的反余弦值. x应该从0到1之间的数,结果在0到pi之间,以弧度为单位.SQL> select cos(0.1667) a,acos(0.5) y,cosh(0.5) z from dualA Y Z---------- ---------- -------------------.986137701 1.04719755 1.127625978、ASIN语法: ASIN(x)功能: 计算x的反正弦值. X的范围应该是-1到1之间,返回的结果在-pi/2到pi/2之间,以弧度为单位. SQL> select sin(0.1667) x,asin(0.5) y,sinh(0.5) z from dualX Y Z---------- ---------- ------------------------.165929004 .523598776 .5210953059、ATAN语法: ATAN(x)功能: 计算x的反正切值.返回值在-pi/2到pi/2之间,单位是弧度.SQL> select tan(0.1667) x ,atan(0.5) y,atan2(1,2) z from dualX Y Z---------- ---------- --------------------.168261495 .463647609 .46364760910、ATAN2语法: ATAN2(x,y)功能: 计算x和y的反正切值.结果在负的pi/2到正的pi/2之间,单位是弧度.atan2(x,y)函数表示,返回x/y的反正切等价于atan(x/y)。
Oracle中常用的to_Char用法详解(有FMT的详细列表)
Oracle中常⽤的to_Char⽤法详解(有FMT的详细列表)以下内容转⾃⽹络,感觉这个⽐较有⽤。
收藏⼀下。
The following are number examples for the to_char function.to_char(1210.73, '9999.9')would return '1210.7'to_char(1210.73, '9,999.99')would return '1,210.73'to_char(1210.73, '$9,999.00')would return '$1,210.73'to_char(21, '000099')would return '000021'The following is a list of valid parameters when the to_char function is used to convert a date to a string. These parameters can be used in many combinations.Parameter ExplanationYEAR Year, spelled outYYYY4-digit yearYYYYYYLast 3, 2, or 1 digit(s) of year.IYYIYILast 3, 2, or 1 digit(s) of ISO year.IYYY4-digit year based on the ISO standardQ Quarter of year (1, 2, 3, 4; JAN-MAR = 1).MM Month (01-12; JAN = 01).MON Abbreviated name of month.MONTH Name of month, padded with blanks to length of 9 characters.RM Roman numeral month (I-XII; JAN = I).WW Week of year (1-53) where week 1 starts on the first day of the year and continues to the seventh day of the year.W Week of month (1-5) where week 1 starts on the first day of the month and ends on the seventh.IW Week of year (1-52 or 1-53) based on the ISO standard.D Day of week (1-7).DAY Name of day.DD Day of month (1-31). DDD Day of year (1-366).DY Abbreviated name of day.J Julian day; the number of days since January 1, 4712 BC.HH Hour of day (1-12).HH12Hour of day (1-12).HH24Hour of day (0-23).MI Minute (0-59).SS Second (0-59).SSSSS Seconds past midnight (0-86399). FF Fractional seconds.The following are date examples for the to_char function.to_char(sysdate, 'yyyy/mm/dd');would return '2003/07/09'to_char(sysdate, 'Month DD, YYYY');would return 'July 09, 2003'to_char(sysdate, 'FMMonth DD, YYYY');would return 'July 9, 2003'to_char(sysdate, 'MON DDth, YYYY');would return 'JUL 09TH, 2003'to_char(sysdate, 'FMMON DDth, YYYY');would return 'JUL 9TH, 2003'to_char(sysdate, 'FMMon ddth, YYYY');would return 'Jul 9th, 2003'You will notice that in some examples, the format_mask parameter begins with "FM". This means that zeros and blanks are suppressed. This can be seen in the examples below.to_char(sysdate, 'FMMonth DD, YYYY');would return 'July 9, 2003'to_char(sysdate, 'FMMON DDth, YYYY');would return 'JUL 9TH, 2003'to_char(sysdate, 'FMMon ddth, YYYY');would return 'Jul 9th, 2003'The zeros have been suppressed so that the day component shows as "9" as opposed to "09". Oracle函数to_char转化数字型指定⼩数点位数的⽤法to_char,函数功能,就是将数值型或者⽇期型转化为字符型。
oracle 取时间差 Oracle函数大全
MONTHS_BETWEEN(SYSDATE,TO_DATE('2005-11-12','YYYY- MM-DD'))
-------------------------------------------------- --------
-4.6966741
5。NEXT_DAY(d, day_of_week)
返回由"day_of_week"命名的,在变量"d"指定的日期之后的第一个工作日的日期。参数"day_of_week"必须为该星期中的某一天。
SQL> SELECT next_day(to_date('20050620','YYYYMMDD'),1) FROM dual;
NEXT_DAY(T
SS 秒数(0~59) Select to_char(sysdate,’SS’) from dual; 22 11点3分22秒
提示注意不要将MM格式用于分钟(分钟应该使用MI)。MM是用于月份的格式,将它用于分钟也能工作,但结果是错误的。
现在给出一些实践后的用法:
1。上月末天:
常用日期数据格式(该段为摘抄)
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年
and trim(to_char(t.d, 'Day')) = '星期五'
oracle的数组函数 -回复
oracle的数组函数-回复Oracle数据库是一种关系型数据库管理系统,具有强大的功能和灵活的数据操作能力。
在Oracle中,数组函数是一类用于处理数组数据的函数,它们提供了多种方法来处理和操作数组对象,以便更高效地完成各种数据处理和分析任务。
本文将深入介绍Oracle的数组函数,并一步一步回答相关问题,帮助读者更好地理解和应用这些强大的功能。
第一步:了解Oracle的数组函数Oracle提供了多种数组函数,用于处理和操作数组数据。
这些函数可以在查询语句中使用,以便在数据处理过程中对数组进行操作。
一些常用的Oracle数组函数包括:COLLECT、MULTISET、TABLE、VARRAY 等。
第二步:详细介绍每个数组函数的功能和用法- COLLECT函数:将一列数据转换为一个数组对象。
它将输入的数据集合为一个数组对象,并返回该数组对象。
COLLECT函数的语法如下:COLLECT(expr) [KEEP (DENSE_RANK FIRST ORDER BY ...)]例如:SELECT COLLECT(emp_name) FROM employees;这个查询将返回一个数组对象,其中包含所有员工姓名的集合。
- MULTISET函数:将一列数据转换为一个多集合(即允许重复值的集合)。
MULTISET函数类似于COLLECT函数,不同之处在于它可以包含重复的元素。
MULTISET函数的语法如下:MULTISET(expr)例如:SELECT MULTISET(SELECT emp_name FROM employees) FROM dual;这个查询将返回一个多集合对象,其中包含所有员工姓名的集合,并允许包含重复的姓名。
- TABLE函数:将一个数组对象作为输入,并将其转换为一个虚拟表。
TABLE函数的语法如下:TABLE(collection)例如:SELECT * FROM TABLE(CAST(COLLECT(emp_name) AS sys.odcivarchar2list)) t;这个查询将返回一个虚拟表,其中包含所有员工姓名的集合。
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中函数的使⽤ 1.decode () 例⼦:它的写法如下decode('a','b','c','d'),其中a,b,c,d可以是其他函数也可以是数值,依据我们⾃⼰的情况来使⽤,它的含义是如果a=b,那么结果显⽰c,否则d。
翻译成我们更通俗易懂的话就是:if(sex=1)then return '男'elsereturn ‘⼥’decode(sex,1,'男','⼥‘’) ⽤法:DECODE(value,if1,then1,if2,then2,if3,then3,...,else),表⽰如果value 等于if1时,DECODE函数的结果返回then1,...,如果不等于任何⼀个if值,则返回else。
初看⼀下,DECODE 只能做等于测试,但刚才也看到了,我们通过⼀些函数或计算替代value,是可以使DECODE函数具备⼤于、⼩于或等于功能。
该函数的含义如下:IF 条件=值1 THEN RETURN(翻译值1)ELSIF 条件=值2 THEN RETURN(翻译值2) ......ELSIF 条件=值n THEN RETURN(翻译值n)ELSE RETURN(缺省值)END IF该函数的含义如下:IF 条件=值1 THEN RETURN(翻译值1)ELSIF 条件=值2 THEN RETURN(翻译值2) ......ELSIF 条件=值n THEN RETURN(翻译值n)ELSE RETURN(缺省值)END IF2.case ()⽤法:case when 'a' then 'b' else 'c' end例⼦1:case when sex=1then '男'else '⼥'end例⼦2:CASE WHEN sex=1THEN (case when age>=18then '成年男⼈'else ‘未成年男孩’end)ELSE (case when age>=18then '成年⼥⼈'else '未成年⼥孩'3.concat(a,b)⽤法:拼接字符串例⼦:concat(a,’%’)给a加上%号连接多个字符串⽤||select title,concat(round((retail-cost)/cost*100),'%') from Tbl_Books;select Category || ' - ' || Title as 图书类别 from tbl_books;4.round(a,b)截取数字格式如下:ROUND(number[,decimals])其中:number 待做截取处理的数值decimals 指明需保留⼩数点后⾯的位数。
Oracle递归查询与常用分析函数
Oracle递归查询与常⽤分析函数 最近学习oracle的⼀些知识,发现⾃⼰sql还是很薄弱,需要继续学习,现在总结⼀下哈。
(1)oracle递归查询 start with ... connect by prior ,⾄于是否向上查询(根节点)还是向下查询(叶节点),主要看prior后⾯跟的字段是否是⽗ID。
向上查询:select * from test_tree_demo start with id=1 connect by prior pid=id 查询结果: 向下查询:select * from test_tree_demo start with id=3 connect by prior id=pid 如果要进⾏过滤,where条件不能放在connect by 后⾯,如下:select * from test_tree_demo where id !=4 start with id=1 connect by prior pid=id (2)分析函数- over( partition by ) 数据库中的数据如下:select * from testemp1 select deptno,ename,sal,sum(sal)over() deptsum from testemp1 如果over中不加任何条件,就相当于sum(sal),显⽰结果如下: ⼀般over都是配合partition by order by ⼀起使⽤,partition by 就是分组的意思。
下⾯看个例⼦:按部门分组,同个部门根据姓名进⾏⼯资累计求和。
select deptno,ename,sal,sum(sal)over(partition by deptno order by ename) deptsum from testemp1,显⽰如下: 其实统计各个部门的薪⽔总和,可以使⽤group by实现,select deptno,sum(sal) deptsum from testemp1 group by deptno,结果如下: 但是,使⽤group by 的时候查询出来的字段必须是分组的字段或者聚合函数。
ORACLE数据库sql语言、函数及常用命令
ORACLE结构查询语言SQL语言(新增内容为红色)一、概念介绍:数据库DATABASE、表TABLE、列COLUMN、行ROW、关键字PRIMARY KEY、索引INDEX二、列的类型:字符CHAR和V ARCHAR2、数值NUMBER、长整形LONG、双浮点FLOAT、超长大型数据LONG RAM(照片、图形、描述等不定长数据)、日期DATE(包含日期和时间)。
CHAR (5) 和V ARCHAR2(5)的区别是CHAR不足5位后面自动加上空格,V ARCHAR2不加。
三、列的非空属性NOT NULL:如果一个列具有非空属性,则在给该表增加、修改数据时必须保证该列有内容,否则会出错。
如果一个列允许为空,该列可以不放任何内容,即空值(在SQL中书写为NULL),空值不是空格,如果一个列内容为空值,则该列不等于任何值(包括空值)。
例如:列SAGE1、SAGE2的内容为空,列SAGE3内容为20,则下面的逻辑表达式全部为NULL:SAGE1=SAGE2、SAGE1<>SAGE2、SAGE1=SAGE3、SAGE3>SAGE1。
下面的逻辑表达式全部为真:SAGE1 IS NULL、SAGE3 IS NOT NULL。
下列表达式全为空:sage1+100,sage2+sage3 四、特殊约定:1.所有SQL语句以分号结束不是以回车换行结束。
2.中扩号代表选项,就是其中的内容可有可无。
3.下面讲的列名在很多情况下也可以是表达式。
4.表名格式:[用户名.]表名,例如:user001.student,如果不注名用户,则说明是当前用户的表。
五、建表或视图语句CREATE格式:CREATE TABLE 表名(列名类型长度[NOT NULL],列名类型长度[NOT NULL],列名类型长度[NOT NULL],列名类型长度[NOT NULL],列名类型长度[NOT NULL]);CREATE VIEW 视图名AS SELECT ……;CREATE TABLE 表名AS SELECT ……;Create table as 经常在修改一个表前备份该表,而且运行速度很快且不用提交例如:Select table a_student as select * from student;Create table as 还可以用来复制表结构假设目前有三张表Student(sno,sname,ssex,sage,sdept) 学生表Sno:学号Sname:姓名Ssex:性别Sage:年龄Sdept:所在系Course(cno,cname,cpno,ccredit) 课程表Cno:课程号Cname:课程名Cpno:先行课Ccredit:学分Sc(sno,cno,grade) 学生选课表Sno:学号Cno:课程号Grade:分数Create table student1 as select sno,name from student;利用student创建一个仅仅有两个列的student1。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle常用函数列表速查PL/SQL单行函数和组函数详解函数是一种有零个或多个参数并且有一个返回值的程序。
在SQL中Oracle内建了一系列函数,这些函数都可被称为SQL或PL/SQL语句,函数主要分为两大类:单行函数组函数本文将讨论如何利用单行函数以及使用规则。
SQL中的单行函数SQL和PL/SQL中自带很多类型的函数,有字符、数字、日期、转换、和混合型等多种函数用于处理单行数据,因此这些都可被统称为单行函数。
这些函数均可用于SELECT,WHERE、ORDER BY 等子句中,例如下面的例子中就包含了TO_CHAR,UPPER,SOUNDEX等单行函数。
SELECT ename,TO_CHAR(hiredate,'day,DD-Mon-YYYY')FROM empWhere UPPER(ename) Like 'AL%'ORDER BY SOUNDEX(ename)单行函数也可以在其他语句中使用,如update的SET子句,INSERT的V ALUES子句,DELET 的WHERE子句,认证考试特别注意在SELECT语句中使用这些函数,所以我们的注意力也集中在SELECT语句中。
NULL和单行函数在如何理解NULL上开始是很困难的,就算是一个很有经验的人依然对此感到困惑。
NULL值表示一个未知数据或者一个空值,算术操作符的任何一个操作数为NULL值,结果均为提个NULL值,这个规则也适合很多函数,只有CONCAT,DECODE,DUMP,NVL,REPLACE在调用了NULL参数时能够返回非NULL值。
在这些中NVL函数时最重要的,因为他能直接处理NULL值,NVL有两个参数:NVL(x1,x2),x1和x2都式表达式,当x1为null时返回X2,否则返回x1。
下面我们看看emp数据表它包含了薪水、奖金两项,需要计算总的补偿column name emp_id salary bonuskey type pk nulls/unique nn,u nnfk table datatype number number numberlength 11.2 11.2不是简单的将薪水和奖金加起来就可以了,如果某一行是null值那么结果就将是null,比如下面的例子:update empset salary=(salary+bonus)*1.1这个语句中,雇员的工资和奖金都将更新为一个新的值,但是如果没有奖金,即salary + null,那么就会得出错误的结论,这个时候就要使用nvl函数来排除null值的影响。
所以正确的语句是:update empset salary=(salary+nvl(bonus,0)*1.1单行字符串函数单行字符串函数用于操作字符串数据,他们大多数有一个或多个参数,其中绝大多数返回字符串ASCII()c1是一字符串,返回c1第一个字母的ASCII码,他的逆函数是CHR()SELECT ASCII('A') BIG_A,ASCII('z') BIG_z FROM empBIG_A BIG_z65 122CHR(<i>)[NCHAR_CS]i是一个数字,函数返回十进制表示的字符select CHR(65),CHR(122),CHR(223) FROM empCHR65 CHR122 CHR223A z BCONCAT(,)c1,c2均为字符串,函数将c2连接到c1的后面,如果c1为null,将返回c2.如果c2为null,则返回c1,如果c1、c2都为null,则返回null。
他和操作符||返回的结果相同select concat('slobo ','Svoboda') username from dualusernameslobo SyobodaINITCAP()c1为一字符串。
函数将每个单词的第一个字母大写其它字母小写返回。
单词由空格,控制字符,标点符号限制。
select INITCAP('veni,vedi,vici') Ceasar from dualCeasarVeni,Vedi,ViciINSTR(,[,<i>[,]])c1,c2均为字符串,i,j为整数。
函数返回c2在c1中第j次出现的位置,搜索从c1的第i个字符开始。
当没有发现需要的字符时返回0,如果i为负数,那么搜索将从右到左进行,但是位置的计算还是从左到右,i和j的缺省值为1.select INSTR('Mississippi','i',3,3) from dualINSTR('MISSISSIPPI','I',3,3)11select INSTR('Mississippi','i',-2,3) from dualINSTR('MISSISSIPPI','I',3,3)2INSTRB(,[,i[,j])与INSTR()函数一样,只是他返回的是字节,对于单字节INSTRB()等于INSTR()LENGTH()c1为字符串,返回c1的长度,如果c1为null,那么将返回null值。
select LENGTH('Ipso Facto') ergo from dualergo10LENGTHb()与LENGTH()一样,返回字节。
lower()返回c的小写字符,经常出现在where子串中select LOWER(colorname) from itemdetail WHERE LOWER(colorname) LIKE '%white%'COLORNAMEWinterwhiteLPAD(,<i>[,])c1,c2均为字符串,i为整数。
在c1的左侧用c2字符串补足致长度i,可多次重复,如果i小于c1的长度,那么只返回i那么长的c1字符,其他的将被截去。
c2的缺省值为单空格,参见RPAD。
select LPAD(answer,7,'') padded,answer unpadded from question;PADDED UNPADDED Yes YesNO NOMaybe maybeLTRIM(,)把c1中最左边的字符去掉,使其第一个字符不在c2中,如果没有c2,那么c1就不会改变。
select LTRIM('Mississippi','Mis') from dualLTRppiRPAD(,<i>[,])在c1的右侧用c2字符串补足致长度i,可多次重复,如果i小于c1的长度,那么只返回i那么长的c1字符,其他的将被截去。
c2的缺省值为单空格,其他与LPAD相似RTRIM(,)把c1中最右边的字符去掉,使其第后一个字符不在c2中,如果没有c2,那么c1就不会改变。
REPLACE(,[,])c1,c2,c3都是字符串,函数用c3代替出现在c1中的c2后返回。
select REPLACE('uptown','up','down') from dualREPLACEdowntownSTBSTR(,<i>[,])c1为一字符串,i,j为整数,从c1的第i位开始返回长度为j的子字符串,如果j为空,则直到串的尾部。
select SUBSTR('Message',1,4) from dualSUBSMessSUBSTRB(,<i>[,])与SUBSTR大致相同,只是I,J是以字节计算。
SOUNDEX()返回与c1发音相似的词select SOUNDEX('dawes') Dawes SOUNDEX('daws') Daws, SOUNDEX('dawson') from dualDawes Daws DawsonD200 D200 D250TRANSLATE(,,)将c1中与c2相同的字符以c3代替select TRANSLATE('fumble','uf','ar') test from dualTEXTrambleTRIM([[]] from c3)将c3串中的第一个,最后一个,或者都删除。
select TRIM(' space padded ') trim from dual TRIMspace padded返回c1的大写,常出现where子串中select name from dual where UPPER(name) LIKE 'KI%'NAMEKING单行数字函数单行数字函数操作数字数据,执行数学和算术运算。
所有函数都有数字参数并返回数字值。
所有三角函数的操作数和值都是弧度而不是角度,oracle没有提供内建的弧度和角度的转换函数。
ABS()返回n的绝对值ACOS()反余玄函数,返回-1到1之间的数。
n表示弧度select ACOS(-1) pi,ACOS(1) ZERO FROM dualPI ZERO3.14159265 0ASIN()反正玄函数,返回-1到1,n表示弧度ATAN()反正切函数,返回n的反正切值,n表示弧度。
CEIL()返回大于或等于n的最小整数。
COS()返回n的余玄值,n为弧度COSH()返回n的双曲余玄值,n 为数字。
select COSH(<1.4>) FROM dualCOSH(1.4)2.15089847EXP()返回e的n次幂,e=2.71828183.FLOOR()返回小于等于N的最大整数。
LN()返回N的自然对数,N必须大于0LOG(,)返回以n1为底n2的对数返回n1除以n2的余数,POWER(,)返回n1的n2次方ROUND(,)返回舍入小数点右边n2位的n1的值,n2的缺省值为0,这回将小数点最接近的整数,如果n2为负数就舍入到小数点左边相应的位上,n2必须是整数。
select ROUND(12345,-2),ROUND(12345.54321,2) FROM dualROUND(12345,-2) ROUND(12345.54321,2)12300 12345.54SIGN()如果n为负数,返回-1,如果n为正数,返回1,如果n=0返回0.SIN()返回n的正玄值,n为弧度。
SINH()返回n的双曲正玄值,n为弧度。
SQRT()返回n的平方根,n为弧度TAN()返回n的正切值,n为弧度TANH()返回n的双曲正切值,n为弧度TRUNC(,)返回截尾到n2位小数的n1的值,n2缺省设置为0,当n2为缺省设置时会将n1截尾为整数,如果n2为负值,就截尾在小数点左边相应的位上。