Oracle常用函数及实例

SI GN( 1 2 3)S I GN( 一1 O 0 ) SI GN( 0 )
1 数 字 函数
1 —1 0
( 1 )A B S )
函数 A B S( x )的功 能 是 求 x的绝 对 值 。
SQL >s e l e c t a b s ( 1 O ) a b s ( 一1 0 ) f r o m d u a l :
内置 了丰 富的 函数 。供软 件人 员在 开发或 维护过 程 中使 用 ,Or a c l e数 据库 还提 供 了其他 公 司未有
的 De c o d e函数 .可以方便 地进行 数据 逻辑 处理 。讲述 了 Or a c l e中的一 些常 用 函数 ,用实例 展 现 函
数 的基 本 用 法 . 并 介 绍 De c o d e函数 使 用 的 一 些 技 巧 关 键 词 :Or a c l e 数 据 库 ; 数 字 函 数 ; 字 符 函 数 ; 日期 时 间 函数 ; 转 换 函数 ;De c o d e函数
用 的单 行 函 数 。
函数 S I G N( x )的 功 能 是 , 若 x为 负 数 ,则 返 回 一 1 ;若 x
为正 数 ,则返 回 1 ;若 X为 0 , 则返 回 0 。
S QL >s e l e c t s i g n ( 1 0 0 ) s i g n ( -1 0 0 ) , s i g n 《 0 ) f r 0 m d u a
Mr . Sm i t h
F L OOR 1 . 6 7 )

( 3 )I N S T R( x , Y【 , n ] 【 , Ⅱ l 】 )
( 4 )MO D( x , 函 数 MO D x , Y )的 功 能是 返 回 x 除 以 y的余 数 。 函数 I N S T R x , Y[ , n 】【 , m ] )的功 能 是 ,在 字 符 串 x中查 找
_

卜 ¨


l I


实用第一 智慧密集
… . . …
Or a c l e 常用函数及实例
杨 东
摘 要 :信 息化技 术 时代 的不 断发展 .数 据库在 日常 的信 息 系统 开发 过程 中扮 演 了不 可替 代 的重 要 角 色,海 量数据 的处理 与 管理 .成 为 了数据 库 日常管理 与 维护 的基 本 内容 。Or a c l e 数 据 库本 身
其 实 位置 ,可 选 参 数 m指 定 返 回 v第 几 次 出现 的位 置 ;省 略 参
数 n或 m,其 默认 值 均 为 1 。
S QL >s e l e c t { n s t r ( ' a a b b c c a b c r a , 1 , 3 ) f r o m d u a l ;
2 字符 函数
( 1 )C ONC AT x , Y )
A B S ( 1 0 )A B S ( 一 1 O )
1 O 1 O
函数 C O N C A T( x , y )的功 能是 将 字 符 串 x与 字 符 串 Y连 接 起 来 所 形 成 的 的字 符 串作 为 结 果返 回 。
根 据 函 数 是 对 一 行记 录还 是 多 行 记 录进 行 操 作 .O r a c l e内 置 函数 分 为单 行 函数 和 多 行 函数 。其 中 ,单 行 函数 每 次 只 对 一



( 5 )S I G N( x )
行 记 录 进 行 操作 ,并 得 到 一行 返 回结 果 ;多 行 函数 每 次 可 以对 多 行 记 录 进行 操 作 ,但 得 到一 行 返 回结 果 。本 次 仅 讨 论 一 些 常
( 3 )F L O O R( X )
函数 F L O O R x 1的功 能 是 返 回小 于或 等 于 x的最 大 整数 。
SQL >s e l e c t f l o o r ( 1 . 6 7 ) f r O m d u a l ;
i n i t c a p ( mr . s mi t h 3
4 —2
( 2 )I N I T C A P( x )
函数 I N I T C A P f x 1的 功 能 是 将 字 符 串 X中 的每 个 单 词 的 首
字母 都 转 换 成 大 写所 形 成 的 的 字 符 串作 为结 果 返 回 。
S QL >s e l e c t i n i t c a p ( mr . s mi t h ) f r o m d u a l ;
( 2)C E I L x )
函数 C E I L x )的功 能 是 ,返 回大 于 或 等 于 x的最 小整 数 。
S QL >s e l e c t c e i l ( 3 2 ) , c e i l ( 一 2 . 2 ) f r o m d u a l ;
CE I L ( 3. 2 )c e i l ( 一2 . 2 )
S QL >s e l e c t c o n c a t ( 0 5 5 3 一 5 2 5 6 5 6 8 )f r o m d u a l ; c o n c a t ( 0 5 5 3 - , 5 2 5 6 5 6 8 )
O 5 5 3 -5 2 5 6 5 6 8
子串 Y ,确 定 并 返 回 Y在 x中 的位 置 。 可 选 参 数 n指 定 查 找 的
S QL >s e l e c t mo d ( 1 3 , 3 ) , mo d ( 3 , 3 ) , mo d ( 1 , 3 ) f r o m d u a l ; MOD ( 1 3 , 3 ) MOD ( 3 , 3 )MOD( 1 , 3 l
合集下载

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 常用SQL函数1、数值型常用函数1).ceil(n) 大于或等于数值n的最小整数select ceil(10.6) from dual; 112).floor(n) 小于等于数值n的最大整数select ceil(10.6) from dual; 103).mod(m,n) m除以n的余数,若n=0,则返回m select mod(7,5) from dual; 24).power(m,n) m的n次方select power(3,2) from dual; 95).round(n,m) 将n四舍五入,保留小数点后m位select round(1234.5678,2) from dual; 1234.576).sign(n) 若n=0,则返回0,否则,n>0,则返回1,n<0,则返回-1select sign(12) from dual; 17).sqrt(n) n的平方根select sqrt(25) from dual ; 52、常用字符函数1).initcap(char) 把每个字符串的第一个字符换成大写select initicap('mr.ecop') from dual; Mr.Ecop2).lower(char) 整个字符串换成小写select lower('MR.ecop') from dual; mr.ecop3).replace(char,str1,str2) 字符串中所有str1换成str2select replace('Scott','s','Boy') from dual; Boycott4).substr(char,m,n) 取出从m字符开始的n个字符的子串select substr('ABCDEF',2,2) from dual; CD5).length(char) 求字符串的长度select length('ACD') from dual; 36).|| 并置运算符select 'ABCD'||'EFGH' from dual; ABCDEFGH7).RPAD和LPAD(粘贴字符)RPAD 在列的右边粘贴字符LPAD 在列的左边粘贴字符SQL> select lpad(rpad(gao,10,*),17,*)from dual;LPAD(RPAD(GAO,1-----------------*******gao*******8).decodeselect decode(column1,null,'空',1,'壹',2,'贰',3,'叁','其他') from table19).case表达式.case表达式(1)SELECT first_name,last_name,job_id,salary,CASE job_idWHEN 'IT_PROG' THEN salary*2WHEN'ST_CLERK' THEN salary*1.2ELSE salary*1.1END AS new_salaryFROM employeesORDER BY job_id;.case表达式(2)SELECT first_name,last_name,job_id,salary,CASEWHEN job_id = 'IT_PROG' THEN salary*2WHEN job_id = 'ST_CLERK' THEN salary*1.2ELSE salary*1.1END AS new_salaryROM employeesORDER BY job_id;3、日期型函数sysdate 当前日期和时间select sysdate from dual;last_day 本月最后一天select last_day(sysdate) from dual;add_months(d,n) 当前日期d后推n个月select add_months(sysdate,2) from dual; months_between(d,n) 日期d和n相差月数select months_between(sysdate,to_date('20020812','YYYYMMDD')) from dual;next_day(d,day) d月后第一周指定day的日期select next_day(sysdate,'Monday') from dual;day 格式有'Monday' 星期一'Tuesday' 星期二'wednesday' 星期三'Thursday' 星期四'Friday' 星期五'Saturday' 星期六'Sunday' 星期日4、特殊格式的日期型函数Y或YY或YYY 年的最后一位,两位,三位select to_char(sysdate,'YYY') from dual;Q 季度,1-3月为第一季度select to_char(sysdate,'Q') from dual;MM 月份数select to_char(sysdate,'MM') from dual;RM 月份的罗马表示select to_char(sysdate,'RM') from dual; IVmonth 用9个字符表示的月份名select to_char(sysdate,'month') from dual;ww 当年第几周select to_char(sysdate,'ww') from dual;w 本月第几周select to_char(sysdate,'w') from dual;DDD 当年第几天,一月一日为001 ,二月一日032select to_char(sysdate,'DDD') from dual;DD 当月第几天select to_char(sysdate,'DD') from dual;D 周内第几天select to_char(sysdate,'D') from dual; 如sundayDY 周内第几天缩写select to_char(sysdate,'DY') from dual; 如sun hh12 12小时制小时数select to_char(sysdate,'hh12') from dual;hh24 24小时制小时数select to_char(sysdate,'hh24') from dual;Mi 分钟数select to_char(sysdate,'Mi') from dual;ss 秒数select to_char(sysdate,'ss') from dual;select to_char(sysdate,'YYYY-MM-DD HH:24:mi:ss') from dua;to_number() 将合法的数字字符串select to_number('88877') from dual; 88877 to_char() 将数字转换为字符串select to_char(88877) from dual; '88877'。

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统计函数大全

【一】、Oracle常用的统计函数Avg(x):求一组行中列x值的平均值count(x):求一组行中列x值的非空行数count(*):求一组行的总行数max(x):求一组行中列x值的最大值min(x):求一组行中列x值的最小值stddev(x):求一组行中列x值的标准差sum(x):求一组行中列x值的总和variance(x):求一组行中列x值的方差【二】、group by与统计函数使用上面介绍的函数时可以使用也可以不使用group by ,但在使用group by时,未在group by部分用到的列在select 部分出现时必须使用统计函数,如按角色统计平均年龄Select user_name,avg(age) from usersGroup by role_id; ×Select count(user_name),avg(age) from usersGroup by role_id√【三】、用having字句规定统计条件having 子句的作用类似于where子句,只不过where 子句针对单个行,而having子句针对的是统计结果,一般和统计的函数搭配使用。

Having子句后必须为前面select后面的子部分,或是group by 后面的字段select count(uer_name),avg(age) from users group by role_id having role_id>20; ×select count(uer_name),avg(age) from users group by role_id having avg(age)>20; √【四】其他oracle常用函数Decode(column1,value1,output1,value2,output2,…..)如果column1 有一个值为value1那么将会用output1 来代替当前值,如果column1 的值为value2 那么就用OUTPUT2 来代替当前值,如果column1 中哪两个值都不是,那么就会用OUTPUT3 来代替当前值Select decode(age,10,7,9,6,3),user_name from users;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;高乾竞电话----------------************转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) SAL LENGTH(TO_CHAR(SAL))------ ------------ ---------------- ------------ --------- --------------------高乾竞 3 北京市海锭区6 9999.99 77.LOWER返回字符串,并将所有的字符小写SQL> selec t lower(’AaBbCcDd’)AaBbCcDd from dual;AABBCCDDaabbccdd8.UPPER返回字符串,并将所有的字符大写SQL> select upper(’AaBbCcDd’) upper from dual;UPPER--------AABBCCDD9.RPAD和LPAD(粘贴字符)RPAD 在列的右边粘贴字符LPAD 在列的左边粘贴字符SQL> select lpad(rpad(’gao’,10,’*’),17,’*’)from dual;LPAD(RPAD(’GAO’,1-----------------*******gao*******不够字符则用*来填满10.LTRIM和RTRIMLTRIM 删除左边出现的字符串RTRIM 删除右边出现的字符串SQL> select ltrim(rtrim(’ gao qian jing ’,’ ’),’ ’) from dual;LTRIM(RTRIM(’-------------gao qian jing11.SUBSTR(string,start,count)取子字符串,从start开始,取count个SQL> select substr(’130****8888’,3,8)from dual;SUBSTR(’--------0888888812.REPLACE(’string’,’s1’,’s2’)string 希望被替换的字符或变量s1 被替换的字符串s2 要替换的字符串SQL> select replace(’he love you’,’he’,’i’) from d ual;REPLACE(’H----------i love you13.SOUNDEX返回一个与给定的字符串读音相同的字符串SQL> create table table1(xm varchar(8));SQL> insert into table1 values(’weather’);SQL> insert into table1 values(’wether’);SQL> insert into table1 values(’gao’);SQL> select xm from table1 where soundex(xm)=soundex(’weather’);--------weatherwether14.TRIM(’s’ from ’string’)LEADING 剪掉前面的字符TRAILING 剪掉后面的字符如果不指定,默认为空格符15.ABS返回指定值的绝对值SQL> select abs(100),abs(-100) from dual; ABS(100) ABS(-100)--------- ---------100 10016.ACOS给出反余弦的值SQL> select acos(-1) from dual;ACOS(-1)---------3.141592717.ASIN给出反正弦的值SQL> select asin(0.5) from dual;ASIN(0.5)---------.5235987818.ATAN返回一个数字的反正切值SQL> select atan(1) from dual;ATAN(1)---------.7853981619.CEIL返回大于或等于给出数字的最小整数SQL> select ceil(3.1415927) from dual; CEIL(3.1415927)---------------420.COS返回一个给定数字的余弦SQL> select cos(-3.1415927) from dual; COS(-3.1415927)----------------121.COSH返回一个数字反余弦值SQL> select cosh(20) from dual;COSH(20)---------24258259822.EXP返回一个数字e的n次方根SQL> select exp(2),exp(1) from dual;EXP(2) EXP(1)--------- ---------7.3890561 2.718281823.FLOOR对给定的数字取整数SQL> select floor(2345.67) from dual;FLOOR(2345.67)--------------234524.LN返回一个数字的对数值SQL> select ln(1),ln(2),ln(2.7182818) from dual;LN(1) LN(2) LN(2.7182818)--------- --------- -------------0 .69314718 .9999999925.LOG(n1,n2)返回一个以n1为底n2的对数SQL> select log(2,1),log(2,4) from dual;LOG(2,1) LOG(2,4)--------- ---------0 226.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)--------- --------- ---------1 0 227.POWER返回n1的n2次方根SQL> select power(2,10),power(3,3) from dual; POWER(2,10) POWER(3,3)----------- ----------1024 2728.ROUND和TRUNC按照指定的精度进行舍入SQL> select round(55.5),round(-55.4),trunc(55.5),trunc(-55.5) from dual; ROUND(55.5) ROUND(-55.4) TRUNC(55.5) TRUNC(-55.5)----------- ------------ ----------- ------------56 -55 55 -5529.SIGN取数字n的符号,大于0返回1,小于0返回-1,等于0返回0SQL> select sign(123),sign(-100),sign(0) from dual;SIGN(123) SIGN(-100) SIGN(0)--------- ---------- ---------1 -1 030.SIN返回一个数字的正弦值SQL> select sin(1.57079) from dual;SIN(1.57079)------------131.SIGH返回双曲正弦的值SQL> select sin(20),sinh(20) from dual;SIN(20) SINH(20)--------- ---------.91294525 24258259832.SQRT返回数字n的根SQL> select sqrt(64),sqrt(10) from dual;SQRT(64) SQRT(10)--------- ---------8 3.162277733.TAN返回数字的正切值SQL> select tan(20),tan(10) from dual;TAN(20) TAN(10)--------- ---------2.2371609 .6483608334.TANH返回数字n的双曲正切值SQL> select tanh(20),tan(20) from dual;TANH(20) TAN(20)--------- ---------1 2.237160935.TRUNC按照指定的精度截取一个数SQL> select trunc(124.1666,-2) trunc1,trunc(124.16666,2) from dual;TRUNC1 TRUNC(124.16666,2)--------- ------------------100 124.1636.ADD_MONTHS增加或减去月份SQL> select to_char(add_months(to_date(’199912’,’yyyymm’),2),’yyyymm’) from dual;TO_CHA------200002SQL> s elect to_char(add_months(to_date(’199912’,’yyyymm’),-2),’yyyymm’) from dual;TO_CHA------199910ST_DAY返回日期的最后一天SQL> select to_char(sysdate,’yyyy.mm.dd’),to_char((sysdate)+1,’yyyy.mm.dd’) from dual;TO_CHAR(SY TO_CHAR((S---------- ----------2004.05.09 2004.05.10SQL> select last_day(sysdate) from dual;LAST_DAY(S----------31-5月-0438.MONTHS_BETWEEN(date2,date1)给出date2-date1的月份SQL> select months_between(’19-12月-1999’,’19-3月-1999’) mon_between from dual;MON_BETWEEN-----------9SQL>selectmonths_between(to_date(’2000.05.20’,’yyyy.mm.dd’),to_date(’2005.05.20’,’yyyy.mm.dd’)) mon_betw from dual; MON_BETW----------6039.NEW_TIME(date,’this’,’that’)给出在this时区=other时区的日期和时间SQL> select to_char(sysdate,’yyyy.mm.dd hh24:mi:ss’) bj_time,to_char(new_time2 (sysdate,’PDT’,’GMT’),’yyyy.mm.dd hh24:mi:ss’) los_angles from dual;BJ_TIME LOS_ANGLES------------------- -------------------2004.05.09 11:05:32 2004.05.09 18:05:32给出日期date和星期x之后计算下一个星期的日期S QL> select next_day(’18-5月-2001’,’星期五’) next_day from dual; NEXT_DAY----------25-5月-0141.SYSDATE用来得到系统的当前日期SQL> select to_char(sysdate,’dd-mm-yyyy day’) from dual;TO_CHAR(SYSDATE,’-----------------09-05-2004 星期日trunc(date,fmt)按照给出的要求将日期截断,如果fmt=’mi’表示保留分,截断秒SQL> select to_char(trunc(sysdate,’hh’),’yyyy.mm.dd hh24:mi:ss’) hh,2 to_char(trunc(sysdate,’mi’),’yyyy.mm.dd hh24:mi:ss’) hhmm from dual; HH HHMM------------------- -------------------2004.05.09 11:00:00 2004.05.09 11:17:0042.CHARTOROWID将字符数据类型转换为ROWID类型SQL> select rowid,rowidtochar(rowid),ename from scott.emp;ROWID ROWIDTOCHAR(ROWID) ENAME------------------ ------------------ ----------AAAAfKAACAAAAEqAAA AAAAfKAACAAAAEqAAA SMITH AAAAfKAACAAAAEqAAB AAAAfKAACAAAAEqAAB ALLEN AAAAfKAACAAAAEqAAC AAAAfKAACAAAAEqAAC WARD AAAAfKAACAAAAEqAAD AAAAfKAACAAAAEqAAD JONES43.CONVERT(c,dset,sset)将源字符串sset从一个语言字符集转换到另一个目的dset字符集SQL> select convert(’strutz’,’we8hp’,’f7dec’) "conversion" from dual; conver------strutz44.HEXTORAW将一个十六进制构成的字符串转换为二进制45.RAWTOHEXT将一个二进制构成的字符串转换为十六进制46.ROWIDTOCHAR将ROWID数据类型转换为字符类型47.TO_CHAR(date,’format’)SQL> select to_char(sysdate,’yyyy/mm/dd hh24:mi:ss’) from dual;TO_CHAR(SYSDATE,’YY-------------------2004/05/09 21:14:41将字符串转化为ORACLE中的一个日期49.TO_MULTI_BYTE将字符串中的单字节字符转化为多字节字符SQL> select to_multi_byte(’高’) from dual;TO--高50.TO_NUMBER将给出的字符转换为数字SQL> select to_number(’1999’) year from dual;YEAR---------199951.BFILENAME(dir,file)指定一个外部二进制文件SQL>insert into file_tb1 values(bfilename(’lob_dir1’,’image1.gif’));52.CONVERT(’x’,’desc’,’source’)将x字段或变量的源source转换为descSQL> select sid,serial#,username,decode(command,2 0,’none’,3 2,’insert’,4 3,5 ’select’,6 6,’update’,7 7,’delete’,8 8,’drop’,9 ’other’) cmd from v$session where type!=’background’;SID SERIAL# USERNAME CMD--------- --------- ------------------------------ ------1 1 none2 1 none3 1 none4 1 none5 1 none6 1 none7 1275 none8 1275 none9 20 GAO select10 40 GAO none53.DUMP(s,fmt,start,length)DUMP函数以fmt指定的内部数字格式返回一个VARCHAR2类型的值SQL> col global_name for a30SQL> col dump_string for a50SQL> set lin 200SQL> select global_name,dump(global_name,1017,8,5) dump_string from global_name; GLOBAL_NAME DUMP_STRING------------------------------ --------------------------------------------------ORACLE.WORLD Typ=1 Len=12 CharacterSet=ZHS16GBK: W,O,R,L,D54.EMPTY_BLOB()和EMPTY_CLOB()这两个函数都是用来对大数据类型字段进行初始化操作的函数55.GREATEST返回一组表达式中的最大值,即比较字符的编码大小.SQL> select greatest(’AA’,’AB’,’AC’) from dual;GR--ACSQL> select greatest(’啊’,’安’,’天’) from dual;GR--天56.LEAST返回一组表达式中的最小值SQL> select least(’啊’,’安’,’天’) from dual;LE--啊57.UID返回标识当前用户的唯一整数SQL> show userUSER 为"GAO"SQL> select username,user_id from dba_users where user_id=uid;USERNAME USER_ID------------------------------ ---------GAO 25ER返回当前用户的名字SQL> select user from dual;USER------------------------------GAOEREVN返回当前用户环境的信息,opt可以是:ENTRYID,SESSIONID,TERMINAL,ISDBA,LABLE,LANGUAGE,CLIENT_INFO,LANG,VSIZE ISDBA 查看当前用户是否是DBA如果是则返回trueSQL> select userenv(’isdba’) from dual;USEREN------FALSESQL> select userenv(’isdba’) from dual; USEREN------TRUESESSION返回会话标志SQL> select userenv(’sessionid’) from dual; USERENV(’SESSIONID’)--------------------152ENTRYID返回会话人口标志SQL> select userenv(’entryid’) from dual; USERENV(’ENTRYID’)------------------INSTANCE返回当前INSTANCE的标志SQL> select userenv(’instance’) from dual; USERENV(’INSTANCE’)-------------------1LANGUAGE返回当前环境变量SQL> select userenv(’language’) from dual; USERENV(’LANGUAGE’)---------------------------------------------------- SIMPLIFIED CHINESE_CHINA.ZHS16GBK LANG返回当前环境的语言的缩写SQL> select userenv(’lang’) from dual; USERENV(’LANG’)----------------------------------------------------ZHSTERMINAL返回用户的终端或机器的标志SQL> select userenv(’terminal’) from dual; USERENV(’TERMINA----------------GAOVSIZE(X)返回X的大小(字节)数SQL> select vsize(user),user from dual; VSIZE(USER) USER----------- ------------------------------6 SYSTEM60.AVG(DISTINCT|ALL)all表示对所有的值求平均值,distinct只对不同的值求平均值SQLWKS> create table table3(xm varchar(8),sal number(7,2));语句已处理。

oracle进一法的函数

oracle进一法的函数

oracle进一法的函数摘要:一、Oracle 进一法函数简介1.函数定义2.常见用途二、Oracle 进一法函数的使用1.语法与参数2.示例与应用三、总结正文:一、Oracle 进一法函数简介在Oracle 数据库中,进一法函数(ROUNDUP)是一种四舍五入函数,用于将数字向上舍入到最接近的整数。

它可以将数值表达式的值四舍五入到最接近的整数,从而满足财务、统计等领域的需求。

1.函数定义Oracle 进一法函数的定义如下:```ROUNDUP(number, significance)```其中,`number` 是需要进行四舍五入的数值表达式,`significance` 是指定的舍入精度。

2.常见用途进一法函数在实际应用中主要用于以下场景:- 向上取整:对于任意实数`x`,`ROUNDUP(x)` 等于大于等于`x` 的最小整数。

- 设置精度:通过指定`significance` 参数,可以控制四舍五入的精度,例如保留两位小数、四舍五入到整百等。

二、Oracle 进一法函数的使用1.语法与参数进一法函数的语法如下:```ROUNDUP(number, significance)```参数说明:- `number`:需要进行四舍五入的数值表达式。

- `significance`:指定舍入精度,可以是一个整数或小数。

如果未指定或为NULL,则默认为0,表示四舍五入到整数。

2.示例与应用以下是一些Oracle 进一法函数的示例:- 向上取整:```SELECT ROUNDUP(5.5) FROM DUAL; -- 结果为6```- 保留两位小数:```SELECT ROUNDUP(5.555, 2) FROM DUAL; -- 结果为5.56```- 四舍五入到整百:```SELECT ROUNDUP(123.456, 100) FROM DUAL; -- 结果为1200```三、总结Oracle 进一法函数(ROUNDUP)是一种实用的四舍五入函数,可以满足不同场景下的需求。

oracle常用的分析函数

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数值比较函数及其应用实例。

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中nvldecodetrimrtrim的常见用法

oracle中nvldecodetrimrtrim的常见用法在Oracle中,nvl、decode、trim和rtrim是四个常用的函数,用于在查询和处理数据时进行转换和处理。

下面是它们的常见用法的详细介绍。

1.NVL函数:NVL函数用于将一个表达式替换为另一个表达式,如果第一个表达式为空(null),则将返回第二个表达式。

它的常见用途包括处理空值和默认值的设置。

语法:NVL(expr1, expr2)示例:SELECT NVL(name, 'Unknown') as student_name FROM students;上述例子中,如果name列的值为null,将会显示为'Unknown'。

2.DECODE函数:DECODE函数用于根据给定条件对表达式进行条件分支判断,并返回相应的结果。

它可以实现简单的if-else逻辑判断。

语法:DECODE(expr, search1, result1, search2, result2, ..., default)示例:SELECT DECODE(score, 90, 'A', 80, 'B', 70, 'C', 'D') as grade FROM students;上述例子中,根据score列的值,返回相应的成绩等级。

3.TRIM函数:TRIM函数用于去除字符串首尾的空格,或者指定的字符。

它可以用于数据清理和格式控制。

语法:TRIM([leading , trailing , both] [trim_character] from source_string)示例:SELECT TRIM(' hello ') as trimmed_string FROM dual;上述例子中,将去除字符串" hello "的前导和尾部的空格,返回"hello"。

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常用函数使用大全_最新整理

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) 神奇 的函数 啊,该函 数返回字 符串参数 的语音表 示形式, 对于比较 一些读音 相同,但 是拼写不 同的单词 非常有用 。计算语 音的算法 如下:
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档