Oracle中常用的函数与表达式
Oracle分析函数用法详解

Oracle分析函数Oracle分析函数实际上操作对象是查询出的数据集,也就是说不需二次查询数据库,实际上就是oracle实现了一些我们自身需要编码实现的统计功能,对于简化开发工作量有很大的帮助,特别在开发第三方报表软件时是非常有帮助的。
Oracle从8.1.6开始提供分析函数。
一、基本语法oracle分析函数的语法:function_name(arg1,arg2,...)over(<partition-clause> <order-by-clause ><windowing clause>)说明:1.partition-clause 数据记录集分组2.order-by-clause 数据记录集排序3.windowing clause 功能非常强大、比较复杂,定义分析函数在操作行的集合。
有三种开窗方式: range、row、specifying。
二、常用分析函数1. avg(distinct|all expression) 计算组内平均值,distinct 可去除组内重复数据select deptno,empno,sal,avg(sal) over (partition by deptno) avg_sal from t;DEPTNO EMPNO SAL AVG_SAL---------- ---------- ---------- ----------10 7782 2450 2916.666677839 5000 2916.666677934 1300 2916.6666720 7566 2975 21757902 3000 21757876 1100 21757369 800 21757788 3000 217530 7521 1250 1566.666677844 1500 1566.666677499 1600 1566.666677900 950 1566.666677698 2850 1566.666677654 1250 1566.666672.count(<distinct><*><expression>) 对组内数据进行计数3.rank() 和dense_rank()dense_rank()根据 order by 子句表达式的值,从查询返回的每一行,计算和其他行的相对位置,序号从 1 开始,有重复值时序号不跳号。
oracle中coalesce函数用法

oracle中coalesce函数用法Coalesce函数是Oracle数据库中的一个非常有用的函数,在处理数据时非常常用。
Coalesce函数的作用是从其参数列表中返回第一个非空的值。
换句话说,它会按顺序取参数值,直到找到一个不为NULL的值为止,然后返回这个值。
Coalesce函数的语法如下:```COALESCE(value1, value2, value3, ...)```其中,value1, value2, value3等为参数,可以是列名、常量、表达式等。
Coalesce函数的使用非常灵活,可以用于任何地方需要返回非空值的场景。
下面我们将详细讨论Coalesce函数的用法和实际应用场景。
1.替代NULL值Coalesce函数最常见的用途就是替代NULL值。
在实际开发中,经常会遇到需要在查询结果中将NULL值替换为其他特定的值或者默认值的情况。
这时,Coalesce函数就可以派上用场了。
假设有一个员工表,其中有一个字段为工资,但该字段中有些值为空。
现在我们想要查询员工工资,如果工资为空,则显示默认值为0。
可以使用Coalesce函数来实现这个需求:```SELECT employee_id, COALESCE(salary, 0) AS salaryFROM employees;```这样就可以将工资中的NULL值替换为0,使查询结果更加清晰和易读。
2.多列取值除了替代NULL值,Coalesce函数还可以用于从多列中取值。
在某些情况下,我们需要从多个列中选取一个非空的值进行显示。
这时,Coalesce函数同样可以帮助我们实现这个需求。
比如,有一个订单表,其中记录了订单的支付方式。
订单表中有多个支付字段,比如cash_payment、credit_card_payment和online_payment。
现在我们想要查询订单的支付方式,如果在线支付为空,则显示信用卡支付,如果信用卡支付也为空,则显示现金支付。
oracle语句decode用法

Oracle语句decode用法一、概述d e c o d e在Or ac le数据库中,函数是一个非常常用的函数,用于实现条件判断和条件赋值。
它的语法非常简单,可以帮助我们更加灵活地处理数据。
二、语法D E CO DE(e xp r,se arc h1,re su lt1[,s ear c h2,r es ul t2,...][,d ef a u l t])e x p r-:要判断的表达式,通常是一个字段或表达式;s e a r c h1,s e a r c h2,...-:待比较的值;r e s u l t1,r e s u l t2,...-:e xp r与se ar c h值相等时的返回结果;d e f a u l t-(可选):当ex pr与所有s ea r ch值都不相等时的返回结果。
三、示例1.单条件判断假设我们有一个员工表(em pl oy ee s),包含员工的姓名(na m e)和性别(g en de r)两个字段。
我们想要根据员工的性别显示不同的称谓,可以使用de co de函数来实现:S E LE CT na me,D EC ODE(ge nd er,'M','先生','F','女士')AS sa lu ta ti onF R OM em pl oy ee s;在以上示例中,当ge n de r为'M'时,返回'先生',当g en de r为'F'时,返回'女士'。
2.多条件判断如果我们想要根据员工的级别(l ev el)显示不同的薪资加薪额度,可以通过多个条件来实现:S E LE CT na me,l ev el,D EC OD E(le ve l,'A',1000,'B',800,'C',500,'D',300,0)AS sa lar y_i nc re as eF R OM em pl oy ee s;在以上示例中,当le v el为'A'时,返回1000,当l ev el为'B'时,返回800,以此类推。
Oracle日期处理函数+常用函数示例

Oracle⽇期处理函数+常⽤函数⽰例时间相关应⽤⽰例————select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;——2019-10-21 14:34:15select to_char(sysdate,'ddd-day-dy-Q-WW-W') from dual;——294-星期⼀-4-42-3(当年第⼏天-星期⼏-星期⼏缩写-第⼏季度-当年第⼏周-当⽉第⼏周)select to_date('2019-10-21 14:34:15','yyyy-mm-dd hh24:mi:ss') from dual;——字符转换为⽇期格式select to_char (sysdate, 'yy-mm-dd-day-dy', 'NLS_DATE_LANGUAGE = American') from dual;——19-10-21-monday -mon (以英⽂显⽰⽇期)select * from nls_session_parameters;——查看系统⽀持的⽇期格式select to_number(sysdate - (sysdate-1))*24*60*60*1000 from dual;——86400000(相差多少天、时、分、秒、毫秒,相应增删乘数即可)select to_date(null) from dual;——如果时间为null,那么null也要转换为时间格式select to_char(add_months(trunc(sysdate),-1),'yyyy-mm') from dual;——2019-09(上个⽉)select last_day(add_months(trunc(sysdate),-1)) from dual;——2019/9/30(当⽉最后⼀天)select to_char(trunc(add_months(trunc(sysdate),-1),'month'),'yyyy-mm-dd HH24:MI:SS') from dual;——2019-09-01 00:00:00(上个⽉第⼀天)select next_day(sysdate,7) from dual;——2019/10/26 15:16:43(从输⼊⽇期得当下个星期天的⽇期,7可以换成其他星期数)select months_between(to_date('2014-3-21','yyyy-mm-dd'), to_date('2014-3-20','yyyy-mm-dd')) months from dual;——0.032258064516129(两个⽉差)select extract(month from sysdate) from dual;——10(截取时间戳的某个字段,语法为extract(year|month|day|hour|minute|second from column_name))select add_months(trunc(sysdate,'year'), 12) - trunc(sysdate,'year') from dual;——365(计算当年有多少天)select to_char(last_day(to_date('02','mm')),'yyyy-mm-dd') from dual;——2019-02-28(获取当年2⽉最后⼀天信息,判断是否闰年)时间常⽤函数总结:select SYSDATE from dual;——2019/10/21 16:07:37(获取系统时间)Select last_day(sysdate) from dual;——2019/10/31 16:09:19(获取输⼊date类型的最后⼀天)Select add_months(sysdate,2) from dual;——2019/12/21 16:12:29(左参数⽇期,右参数当前⽉份加减数,获取相差⽉份的⽇期)select months_between(sysdate,to_date('2019-09-12','yyyy-mm-dd'))from dual;——1.31224499701314(⽇期相差的⽉份)SELECT next_day(sysdate,2) FROM dual;——2019/10/28 16:20:17(下周2⽇期)select sessiontimezone,current_date from dual;——+08:00,2019/10/21 16:21:53(返回时区和当前会话时区中的当前⽇期)select extract(month from sysdate) "This Month" from dual;——10(按规则得到时间字段,extract(year|month|day|hour|minute|second from column_name) = value)SELECT TRUNC (SYSDATE, 'DD'),TRUNC (SYSDATE, 'MM'),TRUNC (SYSDATE, 'yyyy'),TRUNC (SYSDATE, 'day'),TRUNC (SYSDATE, 'q') FROM DUAL ;——(截取:当天、本⽉第⼀天、本年第⼀天、本周第⼀天、本季度第⼀天;另外还可以截取时分秒)其他常⽤函数总结:select concat('010-','88888888') from dual;——010-********(连接字符串,oracle的concat函数不能连接超过两个,三个及以上需要嵌套使⽤,或者⽤管道符||进⾏连接)select substr('12345',3,2) from dual——34(截取字符串,下标基1,从3开始截取两个字符);select instr('oracle traning','ra',1,2) from dual;——9(从1开始查找第2个出现的'ra'字符串,返回下标,若找不到则返回0)select initcap('smith hEllo') from dual;——Smith Hello(格式化字符串,使单词⾸字符⼤⼩,其余⼩写)select lpad(rpad('gao',10,'*'),17,'*')from dual;——*******gao*******(在指定字符的左或右拼接指定符号,使总长度达到指定的数字)select replace('he love you','he','I') from dual;——I love you(⽤指定字符替换相应字符)select trim('a' from 'abacda') from dual;——bacd(⽤单字符删除⾸尾第⼀个字符,若匹配则删除)select trim(' abacd ') from dual;——(删除⾸位空格)select ceil(3.1415927) from dual;——4(取整,⼤于⾃⾝)select floor(3.1415927) from dual;——3(取整,不⼩于⾃⾝)select round(55.655, 2) from dual;——55.66(四舍五⼊取整,保留⼩数点右边两位,若是负数则保留⼩数点左边)select trunc (55.655, 2) from dual;——(截取,只舍不⼊)select abs(-100) from dual;——100(获取绝对值)SELECT LENGTH (' ') FROM DUAL;——(返回字符串长度,空则为空)select lower('AaBbCcDd') from dual;——(变⼩写)select upper('AaBbCcDd') from dual;——(变⼤写)select ASCII('s') from dual;——(返回字符的⼗进制ascii码)select xm from table1 where soundex(xm)=soundex('weather');——(查找发⾳类似的字符串)select mod(10,3) from dual;——1(求余数)select power(3,3) from dual;——27(求次⽅)select sign(123),sign(-100),sign(0) from dual;——1,-1,0(检查正负)select sqrt(64),sqrt(10) from dual;——(计算平⽅根)Select ASCIISTR ('中国') from dual;——(转换数据库字符集的ASCII码)Select decode('a','⾦',1,'银',2,0) from dual;——0(⽤a跟后⾯参数进⾏⽐对,如果是⽐对成功就显⽰该值,否则显⽰默认值0)Select nullif('a', 'b') from dual;——a(⽐较两个表达式,相等返回null,否则返回第⼀个结果)Select nvl(null,0) from dual;——0(如果第⼀个参数为空,则返回第⼆个参数)Select nvl2(null,1,0) from dual;——0(不为空则返回第⼆个参数,为空则返回第三个参数)分组统计函数:AVG([DISTINCT|ALL]col)——求平均值COUNT(*|[DISTINCT|ALL] col)——求总数MAX([DISTINCT|ALL]col)——求最⼤值MIN([DISTINCT|ALL]col)——求最⼩值SUM([DISTINCT|ALL]col)——求和获取数据库信息:SELECT SYS_CONTEXT ('USERENV', 'TERMINAL') 客户端名称,SYS_CONTEXT ('USERENV', 'LANGUAGE') 客户端语⾔,SYS_CONTEXT ('USERENV', 'SESSIONID') sessionid,SYS_CONTEXT ('USERENV', 'INSTANCE') instance,SYS_CONTEXT ('USERENV', 'ENTRYID') entryid,SYS_CONTEXT ('USERENV', 'ISDBA') isdba,SYS_CONTEXT ('USERENV', 'NLS_TERRITORY') 地区,SYS_CONTEXT ('USERENV', 'NLS_CURRENCY') 货币,SYS_CONTEXT ('USERENV', 'NLS_CALENDAR') nls_calendar,SYS_CONTEXT ('USERENV', 'NLS_DATE_FORMAT') 时间格式,SYS_CONTEXT ('USERENV', 'NLS_DATE_LANGUAGE') 时间语⾔,SYS_CONTEXT ('USERENV', 'NLS_SORT') nls_sort,SYS_CONTEXT ('USERENV', 'CURRENT_USER') current_user,SYS_CONTEXT ('USERENV', 'CURRENT_USERID') current_userid,SYS_CONTEXT ('USERENV', 'SESSION_USER') session_user,SYS_CONTEXT ('USERENV', 'SESSION_USERID') session_userid,SYS_CONTEXT ('USERENV', 'PROXY_USER') proxy_user,SYS_CONTEXT ('USERENV', 'PROXY_USERID') proxy_userid,SYS_CONTEXT ('USERENV', 'DB_DOMAIN') db_domain,SYS_CONTEXT ('USERENV', 'DB_NAME') 数据库名称,SYS_CONTEXT ('USERENV', 'HOST') 客户端完成名称,SYS_CONTEXT ('USERENV', 'OS_USER') 客户端⽤户,SYS_CONTEXT ('USERENV', 'EXTERNAL_NAME') external_name,SYS_CONTEXT ('USERENV', 'IP_ADDRESS') 客户端IP地址,SYS_CONTEXT ('USERENV', 'NETWORK_PROTOCOL') ⽹络协议,SYS_CONTEXT ('USERENV', 'BG_JOB_ID') bg_job_id,SYS_CONTEXT ('USERENV', 'FG_JOB_ID') fg_job_id,SYS_CONTEXT ('USERENV', 'AUTHENTICATION_TYPE') authentication_type, SYS_CONTEXT ('USERENV', 'AUTHENTICATION_DATA') authentication_data FROM DUAL;select user from dual;——查询当前数据库的登录⽤户名select userenv('language') from dual;——返回当前地区、语⾔和字符集select vsize('中') from dual;——获取内部表⽰的字节数。
oracle的count函数

Oracle的COUNT函数介绍在Oracle数据库中,COUNT函数是一种聚合函数,用于查询满足指定条件的行数。
COUNT函数的语法为:COUNT(expr)其中,expr是要统计的列或表达式。
COUNT函数会返回该列或表达式的非空值的数量。
COUNT函数可以与其他数据库函数(如SUM、MAX、MIN等)一起使用,也可以与GROUP BY子句一起使用以对结果分组。
本文将深入探讨Oracle的COUNT函数,包括使用方法、常见应用场景等。
使用方法COUNT函数可以用于不同的场景和用途,具体取决于expr参数的使用方式。
下面是一些常见的使用方法:统计表中的行数SELECT COUNT(*) FROM table_name;上述语句将返回表table_name中的总行数。
COUNT函数的参数使用通配符*,表示统计所有行。
统计某列的非空值数量SELECT COUNT(column_name) FROM table_name;上述语句将返回表table_name中列column_name的非空值数量。
COUNT函数的参数为具体的列名。
结合条件统计行数SELECT COUNT(*) FROM table_name WHERE condition;上述语句将返回表table_name中满足条件condition的行数。
可以根据实际需要对条件进行组合和筛选。
常见应用场景COUNT函数在数据分析和报表生成等场景中具有广泛的应用。
以下是一些常见的应用场景:统计订单数量SELECT COUNT(*) FROM orders;通过COUNT函数,可以轻松统计订单表中的订单数量。
对于电商平台等需要分析销售数据的场景很有用。
筛选满足条件的行数SELECT COUNT(*) FROM products WHERE price > 1000;通过COUNT函数结合条件语句,可以筛选出满足特定条件的行数。
例如,上述语句统计了价格大于1000的产品数量。
oracle rlike正则

oracle rlike正则Oracle RLIKE正则表达式是Oracle数据库中用于进行模式匹配的函数。
它可以用来查找满足特定模式的字符串,并返回匹配的结果。
本文将介绍Oracle RLIKE的使用方法和一些常见的应用场景。
一、基本概念在开始之前,我们先来了解一下正则表达式的基本概念。
正则表达式是一种描述文本模式的语法,可以用来匹配、查找和替换字符串。
在Oracle中,RLIKE函数使用的是POSIX标准的正则表达式语法。
二、RLIKE函数的语法RLIKE函数的语法如下:SELECT column_nameFROM table_nameWHERE column_name RLIKE 'pattern';其中,column_name是要匹配的列名,table_name是要查询的表名,pattern是要匹配的模式。
RLIKE函数返回满足模式的所有行。
三、RLIKE的使用示例下面我们通过一些示例来演示RLIKE函数的使用。
1. 查找以"abc"开头的字符串SELECT column_nameFROM table_nameWHERE column_name RLIKE '^abc';2. 查找包含"123"的字符串SELECT column_nameFROM table_nameWHERE column_name RLIKE '123';3. 查找以"abc"结尾的字符串SELECT column_nameFROM table_nameWHERE column_name RLIKE 'abc$';4. 查找包含三个连续数字的字符串SELECT column_nameFROM table_nameWHERE column_name RLIKE '[0-9]{3}';5. 查找以字母开头,后面跟着数字和字母的字符串SELECT column_nameFROM table_nameWHERE column_name RLIKE '^[a-zA-Z][0-9a-zA-Z]*';四、RLIKE的一些注意事项在使用RLIKE函数时,需要注意以下几点:1. RLIKE函数区分大小写,如果要进行不区分大小写的匹配,可以使用RLIKE函数的可选参数'i'。
oracle统计个数的函数

oracle统计个数的函数Oracle是一种常用的关系型数据库管理系统,它提供了丰富的函数和工具来处理和分析数据。
其中,统计个数的函数是Oracle中非常常用的一种函数,它可以帮助我们快速准确地统计某个字段或某个条件下的数据个数。
在Oracle中,统计个数的函数有很多种,常用的有COUNT、COUNT(*)、COUNT(DISTINCT)等。
下面我将分别介绍这几种函数的用法和特点。
首先是COUNT函数,它是最常用的统计个数的函数之一。
COUNT 函数的语法是COUNT(expression),其中expression可以是一个字段、一个表达式或一个常量。
COUNT函数会统计expression不为NULL的记录个数,并返回结果。
例如,我们可以使用COUNT函数统计一个表中某个字段不为NULL的记录个数:SELECT COUNT(column_name) FROM table_name;接下来是COUNT(*)函数,它是COUNT函数的一种特殊形式。
COUNT(*)函数会统计表中所有记录的个数,不管记录中的字段是否为NULL。
这个函数比较常用,特别是在需要统计整个表的记录个数时。
例如,我们可以使用COUNT(*)函数统计一个表中所有记录的个数:SELECT COUNT(*) FROM table_name;最后是COUNT(DISTINCT)函数,它用于统计某个字段的不重复值的个数。
COUNT(DISTINCT)函数的语法是COUNT(DISTINCTexpression),其中expression是一个字段或一个表达式。
COUNT(DISTINCT)函数会统计expression字段中不重复的值的个数,并返回结果。
例如,我们可以使用COUNT(DISTINCT)函数统计一个表中某个字段的不重复值的个数:SELECT COUNT(DISTINCT column_name) FROM table_name;除了上述介绍的几种常用的统计个数的函数外,Oracle还提供了其他一些函数,如SUM、AVG、MAX、MIN等,它们可以用于统计字段的总和、平均值、最大值、最小值等。
(完整版)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。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 ()函数——返回数字的绝对值
abs()函数的参数只能是数值型,该参数用于返回参数 的绝对值。
select abs(-2.1) from dual;
2. 将日期型转换为字符串
select to_char(sysdate, 'yyyy-mm-dd') result from dual; select to_char(sysdate, 'YYYY-MON-DD') from dual;
14.1.13
chr()函数——将ascii码转换为字 符串
chr()函数用于将ascii码转换为字符串。通过chr()函数 ,可以对不宜直接输入的字符进行操作。例如,将回车换行 符插入到数据中。 insert into test_data values (6, '周林 '||chr(13)||chr(10)|'梁军', 20);
第14章
Oracle中的函数与表达式
OracleБайду номын сангаас的聚合函数;
Oracle中的运算表达式;
Oracle中的特殊判式;
Oracle中的高级函数——分析函数与窗口函数。
14.1
Oracle中的字符串函数
Oracle提供了丰富的字符串函数,本小节将通过实例 讲述Oracle中各字符串函数的使用。
还可以指定出现次数参数,以指定是第几次搜索到子 字符串。
select instr('big big tiger', 'big', 2, 2) from dual;
14.1.9
ltrim()函数——删除字符串首部空 格
ltrim()中的l代表left。该函数用于删除字符串左端的空 白符。 select ltrim(' abc') from dual;
对其其他数据类型,照样可以通过length()函数来获得 其长度。length()函数会首先将参数转换为字符串,然后计 算其长度。 select length(12.51) from dual;
14.1.7
substr()函数——截取字符串
substr()函数用于截取字符串。该函数可以指定截取的 起始位置,截取长度,可以实现灵活的截取操作,因此,成 为字符串操作中最常用的函数之一。 例如,对于字符串“1234567890”,现欲截取自第5位 开始的4个字符。 select substr('1234567890', 5, 4) from dual; 需要注意的是,Oracle中字符位置从1开始,而不是像 某些编程语言(如Java)那样从0开始。 如果不指定长度,那么substr()函数将获取起始位置参 数至字符串结尾处的所有字符。 select substr('1234567890', 5) from dual;
select * from test_data where id = 6;
14.1.14
translate()函数——替换字符
translate()函数用于替换字符串。替换的规则类似于翻 译的过程。 select translate('56338', '1234567890', 'avlihemoqr') result from dual; 需要注意的是,当字符不能被成功“翻译”,那么, Oracle将使用空字符替换它。利用此特性,可以使用 translate()函数来删除一个含有数字和英文字母的字符串中 的所有字母: select translate('21343yuioioizf899dasiwpe58595oda0j098', '#abcdefghijklmnopqrstuvwxyz',' ') reulst from dual;
select round(2745, -1) result from dual;
14.2.3
ceil()函数——向上取整
ceil()函数只能有一个参数。该函数将参数向上取整, 以获得大于等于该参数的最小整数。 select ceil(21.897) result from dual;
需要注意的是该函数针对负数的运算:
14.1.11
trim()函数——删除字符串首尾空 格
trim()函数可用于删除首尾空格,相当于ltrim()和 rtrim()的组合。 select trim(' abc ') from dual;
14.1.12
to_char()函数——将其他类型转换 为字符类型
to_char()函数用于将其他数据类型的数据转换为字符 型,这些类型主要包括数值型、日期型。 1. 将数值型转换为字符串
select ceil(-21.897) result from dual;
因为ceil()函数返回的是大于等于参数的最小整数,所 以,该函数返回的并非-22,而是-21。
14.2.4
floor()函数——向下取整
与ceil函数相反,floor()函数用于返回小于等于某个数 值的最大整数。 select floor(21.897) result from dual; select floor(-21.897) result from dual;
14.1.5
initcap ()函数——单词首字母大写
initcap()函数将单词的首字母大写。 select initcap('big') from dual; 需要注意的是,initcap()函数不能自动识别单词 select initcap('bigbigtiger') from dual; initcap()函数会将参数中的非单词字符作为单词分隔符 select initcap('big_big_tiger') from dual; select initcap('big/big/tiger') from dual; select initcap('big big tiger') from dual;
第14章
Oracle中的函数与表达式
Oracle中提供了大量的内置函数,以处理各种形式的 运算。这些函数涵盖了字符串运算、数值运算、日期运算等 方面。同样,Oracle允许使用数值运算、逻辑运算等基本的 表达式运算,另外,提供了SQL标准所规定的特殊判式。
Oracle中的字符串函数; Oracle中的数学函数; Oracle中的日期函数;
需要注意的是,空白符不仅仅包括了空格符,还包括 TAB键、回车符和换行符。
14.1.10
rtrim()函数——删除字符串尾部空 格
rtrim()中的r代表right。该函数用于删除字符串右端空 白符。删除字符串首尾空白符可以结合使用ltrm()和rtrim() 函数。 select rtrim(ltrim(' abc ')) from dual;
14.1.2
rpad()函数
与lpad()函数相反,rpad()函数从右端补齐字符串。 select rpad('abc', 10, '*') from dual; 注意与说明:lpad()和rpad()都用于填充字符串, lpad()从左端进行填充,而rpad()从右端进行填充,但是, 二者在最终截取字符串时,都是从左端开始截取。 select rpad('abcdefg', 6, '*') from dual;
select to_char(120, '99999') result from dual; select to_char(0.96, '9.99') result from dual; select to_char(0.96, '0.00') result from dual; select to_char(5897.098, '999,999,999.000') result from dual; select to_char(5987.098, '$999,999,999.000') result from dual;