Oracle中常用的函数与表达式

  • 格式:ppt
  • 大小:225.50 KB
  • 文档页数:70

下载文档原格式

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

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);
对其其他数据类型,照样可以通过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;
14.2.5
mod ()函数——取模操作
mod()函数有两个参数,第一个参数为被除数,第二个 参数为除数。mod()函数的实际功能为获得两数相除之后的 余数。 select mod(5,2) result from dual;
14.2.6
sign()函数——返回数字的正负性
sign()函数只有一个参数。该函数将返回参数的正负性 。若返回值为1,表示该参数大于0;若返回值为-1,表示该 参数小于0;若返回值为0,表示该参数等于0。 select sign(8) result from dual; select sign(-8) result from dual; select sign(0) result from dual; sign()函数为判断两个数值的大小关系提供了方便。因 为在oracle中,利用类似if else的结构来判断两个数值之间 的大小关系,并不像编程语言中那样方便,而且极易造成代 码的复杂化。
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;
select round(2745, -1) result from dual;
14.2.3
ceil()函数——向上取整
ceil()函数只能有一个参数。该函数将参数向上取整, 以获得大于等于该参数的最小整数。 select ceil(21.897) result 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;
第14章
Oracle中的函数与表达式


Oracle中的聚合函数;
Oracle中的运算表达式;


Oracle中的特殊判式;
Oracle中的高级函数——分析函数与窗口函数。
14.1
Oracle中的字符串函数
Oracle提供了丰富的字符串函数,本小节将通过实例 讲述Oracle中各字符串函数的使用。
14.2
Oracle中的数学函数
Oracle提供的数学函数可以处理日常使用到的大多数 数学运算。本小节将讲述Oracle中常用的几种数学函数。
14.2.1
abs ()函数——返回数字的绝对值
abs()函数的参数只能是数值型,该参数用于返回参数 的绝对值。
select abs(-2.1) from dual;
需要注意的是,空白符不仅仅包括了空格符,还包括 TAB键、回车符和换行符。
14.1.10
rtrim()函数——删除字符串尾部空 格
rtrim()中的r代表right。该函数用于删除字符串右端空 白符。删除字符串首尾空白符可以结合使用ltrm()和rtrim() 函数。 select rtrim(ltrim(' abc ')) from dual;
14.1.3
lower()函数——返回小写字符串
lower()函数用于返回字符串的小写形式。lower()函数 在查询语句中经常扮演重要角色。例如,对于用户名和密码 的校验来说,用户名一般并不区分大小写,用户无论输入了 大写还是小写形式,都被认为是合法用户。因此,在数据库 查询时,应该将数据库中用户名与用户输入的用户名进行统 一。
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;
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.2.2
round ()函数——返回数字的“四舍 五入”值
round()函数用于返回某个数字的四舍五入值。为了使 用该函数,除了提供原始值之外,还应提供精确到的位数。 精确位数可以为正整数、0和负整数。 select round(2745.173, 2) result from dual; 如果不使用第二个参数,那么,相当于使用了参数0, 即精确到整数。 select round(2745.173) result from dual; 如果第二个参数为负数,那么,相当于将数值精确到 小数点之前的位数。
select user_id, user_name from t_users where lower(user_name) = lower('Alex');
14.1.4
upper()函数——返回大写字符串
upper()函数用于返回字符串的大写形式。与lower()函 数类似,upper()函数也可以用在查询语句中,以统一数据 来自百度文库和查询条件的一致性。 select user_id, user_name from t_users where upper(user_name) = upper('ALEX'); 注意与说明:upper()函数和lower()函数只针对英文字 符其作用,因为只有英文字符才有大小写之分。
14.1.6
length()函数——返回字符串长度
length()函数用于返回字符串的长度。 select length('abcd ') from dual;
空字符串的长度不是0,而是null。因为空字符串被视 作null,所以,length(null)返回的仍然是null。 select length('') from dual;
14.1.8
instr()函数——获得字符串出现的 位置
instr()函数用于获得子字符串在父字符串中出现的位置 。 select instr('big big tiger', 'big') from dual; 可以指定额外的参数,以命令该函数从指定位置开始 搜索。 select instr('big big tiger', 'big', 2) from dual;
14.1.1
lpad()函数
lpad()函数用于左补全字符串。在某些情况下,预期的 字符串为固定长度,而且格式统一,此时可以考虑使用 lpad()函数。例如,深市股票代码都以0开头,并且都为6位 ,可以利用lpad格式化股票代码,以保证股票代码的格式。 select lpad('21',6,'0') stock_code from dual; 需要注意的是,当原字符串的长度大于预期长度时, 实际进行的是截取字符串操作。 select lpad('1234567',6,'0') stock_code from dual;
第14章
Oracle中的函数与表达式
Oracle中提供了大量的内置函数,以处理各种形式的 运算。这些函数涵盖了字符串运算、数值运算、日期运算等 方面。同样,Oracle允许使用数值运算、逻辑运算等基本的 表达式运算,另外,提供了SQL标准所规定的特殊判式。
Oracle中的字符串函数; Oracle中的数学函数; Oracle中的日期函数;
14.1.11
trim()函数——删除字符串首尾空 格
trim()函数可用于删除首尾空格,相当于ltrim()和 rtrim()的组合。 select trim(' abc ') from dual;
14.1.12
to_char()函数——将其他类型转换 为字符类型
to_char()函数用于将其他数据类型的数据转换为字符 型,这些类型主要包括数值型、日期型。 1. 将数值型转换为字符串
还可以指定出现次数参数,以指定是第几次搜索到子 字符串。
select instr('big big tiger', 'big', 2, 2) from dual;
14.1.9
ltrim()函数——删除字符串首部空 格
ltrim()中的l代表left。该函数用于删除字符串左端的空 白符。 select 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;