oracle函数介绍(2) 非著名函数之单值函数

合集下载

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 Server、DB2)的应用程序的重要性,它可以让客户们选择自己习惯的平台。

一般来说,软件开发人员都能够识别出他们的负责数据库维护的客户,和必须使用现有平台和个性化的客户。

关于Oracle和SQL Server之间的区别,已经有很多篇文章从企业的角度和数据库管理员的角度出发描写了两者之间的一般差别。

在这篇文章里面,我将会从应用程序的角度向你描述SQL erver 和oracle平台之间的区别,并且将会讨论开发不依赖于数据库环境的应用程序的几种可能的方法。

与此同时,我不会再论讨对于应用程序来说,两个平台之间显而易见的区别,例如表的分割和索引。

定义通用接口和语言有很少的几种通用语言和接口可以让应用程序不依赖于数据库,想来也可以以同样的方式应用在关系型数据库上面: ANSI是美国国家标准局定义的,这是一家志愿者成员的组织(用私人基金运转),他们在有关设备和程序等广泛领域内开发了国家承认的标准。

在数据库领域, ANSI定义了编写SQL命令的标准,假设命令可以运行在任何的数据库上,而不需要更改命令的语法。

ODBC是开放数据库连接(ODBC)接口,微软定义的,它可以让应用程序访问数据库管理系统(DBMS)中的数据,使用SQL作为访问数据的标准。

ODBC允许最大的互联性,这意味着一个单个的应用程序可以访问不同的数据库管理系统。

然后,应用程序终端用户可以添加开放数据库连接(ODBC)数据库驱动来将应用程序与他们所选择的数据库管理系统链接上。

OLE DB 是ODBC的继承者,是一组允许例如基于VB、C++、Access等任何可以连接到类似SQL Server、Oracle、DB2、MySQL等后台的“前台”的软件组件。

在许多种情况下,OLE DB组件都比原有的ODBC提供了好得多的性能。

JDBC(Java数据库连接)应用程序接口是Java编程语言和广泛范围的数据库,SQL数据库和其他表列数据源(例如电子表格或者普通文本文件)之间,进行不依赖于数据库的连接的行业标准。

oracle函数

oracle函数
Ø显示Blake的雇员编号、姓名和部门编号。
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统计函数大全

【一】、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是一种广泛使用的关系型数据库管理系统,它提供了许多强大的函数和工具来处理和管理数据。

在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函数

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数据库中一种强大的功能,它能够根据特定的条件来返回相应的结果。

通过使用条件函数,用户可以更灵活地处理和过滤数据,实现更精确的查询和分析。

本文将介绍一些常用的Oracle条件函数,并探讨它们的用法和特点。

一、CASE函数CASE函数是Oracle中最常用的条件函数之一。

它的作用是根据一个或多个条件来返回不同的结果。

CASE函数有两种形式:简单CASE函数和搜索CASE函数。

1. 简单CASE函数简单CASE函数基于一个表达式的值来判断条件,并返回相应的结果。

它的语法如下:CASE expressionWHEN value1 THEN result1WHEN value2 THEN result2...ELSE resultEND其中,expression是一个表达式,value1、value2等是该表达式可能的值,result1、result2等是对应的结果。

例如,我们可以根据学生的成绩段来给予不同的评价:SELECT name,CASEWHEN score >= 90 THEN '优秀'WHEN score >= 80 THEN '良好'WHEN score >= 60 THEN '及格'ELSE '不及格'END AS evaluationFROM students;2. 搜索CASE函数搜索CASE函数不依赖于一个表达式,而是根据一系列条件来匹配并返回相应的结果。

它的语法如下:CASEWHEN condition1 THEN result1WHEN condition2 THEN result2...ELSE resultEND其中,condition1、condition2等是条件表达式,result1、result2等是对应的结果。

例如,我们可以根据学生的出生年份来判断他们所处的年龄段:SELECT name,CASEWHEN birth_year BETWEEN 2000 AND 2010 THEN '10后'WHEN birth_year BETWEEN 1990 AND 1999 THEN '90后'WHEN birth_year BETWEEN 1980 AND 1989 THEN '80后'ELSE '其他'END AS age_groupFROM students;二、DECODE函数DECODE函数是Oracle中另一个常用的条件函数,它可以根据一个或多个条件来返回不同的结果。

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')会返回当前日期的年月日格式。

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 函数的用法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去除字符串中指定字符(非空格)时的特殊用法。

oracle函数介绍 第二篇 非著名函数之单值函数

oracle函数介绍 第二篇 非著名函数之单值函数

ORACLE函数介绍第二篇非著名函数之单值函数2007.8.9注: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、ABS(n) 返回数字的绝对值例如:SELECT ABS(-1000000.01) FROM DUAL;2、COS(n) 返回n的余弦值例如:SELECT COS(-2) FROM DUAL;3、ACOS(n) 反余弦函数,n between -1 and 1,返回值between 0 and pi。

例如:SELECT ACOS(0.9) FROM DUAL;4、BITAND(n1,n2) 位与运算,这个太有意思了,虽然没想到可能用到哪里,详细说明一下:假设3,9做位与运算,3的二进制形式为:0011,9的二进制形式为:1001,则结果是0001,转换成10进制数为1。

例如:SELECT BITAND(3,9) FROM DUAL;5、CEIL(n) 返回大于或等于n的最小的整数值例如:SELECT ceil(18.2) FROM DUAL;考你一下,猜猜ceil(-18.2)的值会是什么呢6、FLOOR(n) 返回小于等于n的最大整数值例如:SELECT FLOOR(2.2) FROM DUAL;再猜猜floor(-2.2)的值会是什么呢7、BIN_TO_NUM(n1,n2,....n) 二进制转向十进制例如:SELECT BIN_TO_NUM(1),BIN_TO_NUM(1,0),BIN_TO_NUM(1,1) FROM DUAL;8、SIN(n) 返回n的正玄值,n为弧度。

oracle数学函数

oracle数学函数

oracle数学函数Oracle数据库中提供了很多数学函数(Mathematical Functions),这些函数可以在查询语句中使用,以执行各种数学运算和计算。

1.绝对值函数(ABS)绝对值函数(ABS)用于返回一个给定数字的绝对值。

语法如下:ABS(x)其中x是一个数字表达式。

2.按指定精度向上舍入函数(CEIL)按指定精度向上舍入函数(CEIL)用于将一个数字向上舍入到指定的精度。

语法如下:CEIL(x)其中x是待舍入的数字,返回的结果是向上取整后的值。

3.合并两个数字的最小公共数函数(GREATESTCOMMONDIVISOR,GCD)合并两个数字的最小公共数函数(GCD)用于计算两个数字的最大公约数。

语法如下:GCD(x,y)其中x和y是待计算的数字表达式,返回的结果是两个数字的最大公约数。

4.按指定精度向下舍入函数(FLOOR)按指定精度向下舍入函数(FLOOR)用于将一个数字向下舍入到指定的精度。

语法如下:FLOOR(x)其中x是待舍入的数字,返回的结果是向下取整后的值。

5.指数函数(EXP)指数函数(EXP)用于计算一个数字的指数值。

语法如下:EXP(x)其中x是待计算的数字表达式,返回的结果是指定数字的指数值。

6.对数函数(LOG)对数函数(LOG)用于计算一个数字的对数值。

语法如下:LOG(x)其中x是待计算的数字表达式,返回的结果是指定数字的对数值。

7.幂函数(POWER)幂函数(POWER)用于计算一个数字的指数幂。

语法如下:POWER(x,n)其中x是待计算的数字表达式,n是指数的数量,返回的结果是x的n次幂。

8.四舍五入函数(ROUND)四舍五入函数(ROUND)用于将一个数字四舍五入到指定的小数位数。

语法如下:ROUND(x,d)其中x是待舍入的数字,d是要保留的小数位数,返回的结果是四舍五入后的值。

9.平方根函数(SQRT)平方根函数(SQRT)用于计算一个数字的平方根。

oracle数学函数

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_分析函数大全1.SUM:计算指定列的总和。

用法:SUM(column) OVER (PARTITION BY expression ORDER BY expression)2.AVG:计算指定列的平均值。

用法:AVG(column) OVER (PARTITION BY expression ORDER BY expression)3.COUNT:计算指定列的记录数。

用法:COUNT(column) OVER (PARTITION BY expression ORDER BY expression)4.MAX:计算指定列的最大值。

用法:MAX(column) OVER (PARTITION BY expression ORDER BY expression)5.MIN:计算指定列的最小值。

用法:MIN(column) OVER (PARTITION BY expression ORDER BY expression)6.FIRST_VALUE:计算指定列的第一个值。

用法:FIRST_VALUE(column) OVER (PARTITION BY expression ORDER BY expression)ST_VALUE:计算指定列的最后一个值。

用法:LAST_VALUE(column) OVER (PARTITION BY expression ORDER BY expression)8.LEAD:返回指定行后的值。

用法:LEAD(column, offset, default) OVER (PARTITION BY expression ORDER BY expression)G:返回指定行前的值。

用法:LAG(column, offset, default) OVER (PARTITION BY expression ORDER BY expression)10.RANK:计算指定列的排名(相同值有相同的排名,相同排名后续排名跳过)。

Oracle中函数的使用

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函数手册

1. 单行函数1.1 字符函数LOWER 使字符串小写;select LOWER('HeLp') from dual --->helpUPPER 使字符串大写;select UPPER('HeLp') from dual --->HELPINITCAP 使字符串的第一个字母大写,其它为小写select INITCAP('hELp') from dual --->HelpLENGTH 返回表达式中的字符串长度select LENGTH('hELP') from dual ---->4CONCAT 将值连接到一起(,对于此函数,只能使用2个参数)select CONCAT('Hello', 'World') from dual --->HelloWorldSUBSTR 抽取确定长度的字符串select SUBSTR('HelloWorld',1,5) from dual ---->HelloINSTR 查找指定字符的数字位置select INSTR('HelloWorld', 'W') from dual --->6LPAD 按右对齐填充字符串select LPAD(salary,10,'*') from dual --->*****24000RPAD 按左对齐填充字符串select RPAD(salary, 10, '*') from dual --->24000*****TRIM(leading|trailing|both,trim_character FROM trim_source) 从字符串中截去头部或者尾部的字符(或者头尾都截掉)(如果trim_character或trim_source是一个字符型文字值,则必须将它包含在单引号之内。

oracle的数组函数

oracle的数组函数

oracle的数组函数
在Oracle数据库中,有许多用于处理和操作数组的函数。

以下是一些常见的Oracle 数组函数:
1. ARRAY:该函数用于将单个元素或多个元素组合成一个数组。

示例:SELECT ARRAY(1, 2, 3) FROM dual;--返回[1, 2, 3]
2. CARDINALITY:该函数用于返回数组的大小(即元素的数量)。

示例:SELECT CARDINALITY([1, 2, 3]) FROM dual;--返回3
3. MULTISET:该函数用于创建一个集合(multi-set),其中包含数组的所有元素。

它可以用于去重和计算集合的交、并、差等操作。

示例:SELECT MULTISET(1, 2, 2, 3) FROM dual;--返回[1, 2, 2, 3]
4. MEMBER OF:该运算符用于检查一个元素是否属于数组。

如果元素存在于数组中,则返回TRUE;否则返回FALSE。

示例:SELECT 2 MEMBER OF [1, 2, 3] FROM dual;--返回TRUE
5. TREAT:该函数用于将一个表达式视为指定的类型进行处理。

在处理数组时,TREAT函数可以用于访问数组特定位置的元素。

示例:SELECT TREAT([1, 2, 3] AS SYS.ODCINUMBERLIST)(2) FROM dual;--返回2
这些是一些常见的Oracle数组函数,可以帮助您处理和操作数组数据。

请注意,数组在Oracle中通常使用嵌套表(nested table)或V ARRAY(variable-size array)数据类型来表示。

1。

oracle中常用的函数

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是一种流行的关系型数据库管理系统,具有强大的分组统计函数,可以帮助用户轻松实现数据分析和汇总。

在本文中,我们将介绍几种常用的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等,用于计算标准差和方差等统计指标。

这些函数可以帮助用户更全面地分析数据,发现数据的规律和趋势。

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

ORACLE函数介绍第二篇非著名函数之单值函数2008.6.20注: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、ABS(n) 返回数字的绝对值例如:SELECT ABS(-1000000.01) FROM DUAL;2、COS(n) 返回n的余弦值例如:SELECT COS(-2) FROM DUAL;3、ACOS(n) 反余弦函数,n between -1 and 1,返回值between 0 and pi。

例如:SELECT ACOS(0.9) FROM DUAL;4、BITAND(n1,n2) 位与运算,这个太有意思了,虽然没想到可能用到哪里,详细说明一下:假设3,9做位与运算,3的二进制形式为:0011,9的二进制形式为:1001,则结果是0001,转换成10进制数为1。

例如:SELECT BITAND(3,9) FROM DUAL;5、CEIL(n) 返回大于或等于n的最小的整数值例如:SELECT ceil(18.2) FROM DUAL;考你一下,猜猜ceil(-18.2)的值会是什么呢6、FLOOR(n) 返回小于等于n的最大整数值例如:SELECT FLOOR(2.2) FROM DUAL;再猜猜floor(-2.2)的值会是什么呢7、BIN_TO_NUM(n1,n2,....n) 二进制转向十进制例如:SELECT BIN_TO_NUM(1),BIN_TO_NUM(1,0),BIN_TO_NUM(1,1) FROM DUAL;8、SIN(n) 返回n的正玄值,n为弧度。

例如:SELECT SIN(10) FROM DUAL;9、SINH(n) 返回n的双曲正玄值,n为弧度。

例如:SELECT SINH(10) FROM DUAL;10、ASIN(n) 反正玄函数,n between -1 and 1,返回值between pi/2 and -pi/2。

例如:SELECT ASIN(0.8) FROM DUAL;11、TAN(n) 返回n的正切值,n为弧度例如:SELECT TAN(0.8) FROM DUAL;12、TANH(n) 返回n的双曲正切值,n为弧度例如:SELECT TANH(0.8) FROM DUAL;13、ATAN(n) 反正切函数,n表示弧度,返回值between pi/2 and -pi/2。

例如:SELECT ATAN(-444444.9999999) FROM DUAL;14、EXP(n) 返回e的n次幂,e = 2.71828183 ...例如:SELECT EXP(3) FROM DUAL;15、LN(n) 返回n的自然对数,n>0例如:SELECT LN(0.9) FROM DUAL;16、LOG(n1,n2) 返回以n1为底n2的对数,n1 >0 and not 1 ,n2>0例如:SELECT LOG(1.1,2.2) FROM DUAL;17、POWER(n1,n2) 返回n1的n2次方。

n1,n2可以为任意数值,不过如果m是负数,则n必须为整数例如:SELECT POWER(2.2,2.2) FROM DUAL;18、SIGN(n) 如果n<0返回-1,如果n>0返回1,如果n=0返回0.例如:SELECT SIGN(14),SIGN(-14),SIGN(0) FROM DUAL;19、SQRT(n) 返回n的平方根,n为弧度。

n>=0例如:SELECT SQRT(0.1) FROM DUAL;(二).字符型函数返回字符值(Character Functions Returning Character Values)该类函数返回与输入类型相同的类型。

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

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

1、CHR(N[ USING NCHAR_CS]) 返回指定数值在当前字符集中对应的字符例如:SELECT CHR(95) FROM DUAL;2、CONCAT(c1,c2) 连接字符串,等同于||例如:SELECT concat('aa','bb') FROM DUAL;3、INITCAP(c) 将字符串中单词的第一个字母转换为大写,其它则转换为小写例如:SELECT INITCAP('whaT is this') FROM DUAL;4、NLS_INITCAP(c) 返回指定字符串,并将字符串中第一个字母变大写,其它字母变小写例如:SELECT NLS_INITCAP('中华miNZHu') FROM DUAL;它还具有一个参数:Nlsparam用来指定排序规则,可以忽略,默认状态该参数为当前session的排序规则。

(三).字符型函数返回数字值(Character Functions Returning Number Values)本类函数支持所有的数据类型1、ASCII(c) 与chr函数的用途刚刚相反,本函数返回指定字符在当前字符集下对应的数值。

例如:SELECT ASCII('_') FROM DUAL;(四).日期函数(Datetime Functions)本类函数中,除months_between返回数值外,其它都将返回日期。

1、CURRENT_TIMESTAMP([n]) 返回当前session所在时区的日期和时间。

n表示毫秒级的精度,不大于6例如:SELECT CURRENT_TIMESTAMP(3) FROM DUAL;2、LOCALTIMESTAMP([n]) 与上同,返回当前session所在时区的日期和时间。

n表示毫秒级的精度,不大于6例如:SELECT LOCALTIMESTAMP(3) FROM DUAL;3、SYSTIMESTAMP([n]) 与上同,返回当前数据库所在时区的日期和时间,n表示毫秒级的精度,>0 and <6例如:SELECT SYSTIMESTAMP(4) FROM DUAL;4、DBTIMEZONE 返回数据库的当前时区例如:SELECT DBTIMEZONE FROM DUAL;5、SESSIONTIMEZONE 返回当前session所在时区例如:SELECT SESSIONTIMEZONE FROM DUAL;6、EXTRACT(key from date) key=(year,month,day,hour,minute,second) 从指定时间提到指定日期列例如:SELECT EXTRACT(year from sysdate) FROM DUAL;7、TO_TIMESTAMP(c1[,fmt]) 将指定字符按指定格式转换为timestamp格式。

例如:SELECT TO_TIMESTAMP('2007-8-22', 'YYYY-MM-DD HH:MI:SS') FROM DUAL;(五).转换函数(Conversion Functions)转换函数将指定字符从一种类型转换为另一种,通常这类函数遵循如下惯例:函数名称后面跟着待转换类型以及输出类型。

1、BIN_TO_NUM(n1,n2...n) 将一组位向量转换为等价的十进制形式。

例如:SELECT BIN_TO_NUM(1,1,0) FROM DUAL;2、CAST(c as newtype) 将指定字串转换为指定类型,基本只对字符类型有效,比如char,number,date,rowid 等。

此类转换有一个专门的表列明了哪种类型可以转换为哪种类型,此处就不作酹述。

例如:SELECT CAST('1101'AS NUMBER(5)) FROM DUAL;3、CHARTOROWID(c) 将字符串转换为rowid类型例如:SELECT CHARTOROWID('A003D1ABBEFAABSAA0') FROM DUAL;4、ROWIDTOCHAR(rowid) 转换rowid值为varchar2类型。

返回串长度为18个字节。

例如:SELECT ROWIDTOCHAR(rowid) FROM DUAL;5、TO_MULTI_BYTE(c) 将指定字符转换为全角并返回char类型字串例如:SELECT TO_MULTI_BYTE('ABC abc中华') FROM DUAL;6、TO_SINGLE_BYTE(c) 将指定字符转换为半角并返回char类型字串例如:SELECT TO_SINGLE_BYTE('ABCabc中华') FROM DUAL;(六).其它辅助函数(Miscellaneous Single-Row Functions)1、COALESCE(n1,n2,....n) 返回序列中的第一个非空值例如:SELECT COALESCE(null,5,6,null,9) FROM DUAL;2、DUMP(exp[,fmt[,start[,length]]])dump是个功能非常强悍的函数,对于深入了解oracle存储的人而言相当有用。

所以对于我们这些仅仅只是应用的人而言就不知道能将其应用于何处了。

此处仅介绍用法,不对其功能做深入分析。

如上所示,dump拥有不少参数。

其本质是以指定格式,返回指定长度的exp的内部表示形式的varchar2值。

fmt含4种格式:8||10||16||17,分别表示8进制,10进制,16进制和单字符,默认为10进制。

start参数表示开始位置,length表示以,分隔的字串数。

例如:SELECT DUMP('abcdefg',17,2,4) FROM DUAL;3、EMPTY_BLOB,EMPTY_CLOB 这两个函数都是返回空lob类型,通常被用于insert和update等语句以初始化lob列,或者将其置为空。

相关文档
最新文档