一、函数 (说明:本文中用到的表都是oracle提供的scott用户下的表)
使用函数的目的是为了操作数据,将输入的变量处理,返回一个结果。变量可以有好多,传入的变量可以是列的值,也可以是表达式。
函数可以嵌套。内层函数的结果是外层函数的变量。
oracle函数可以分为当行函数和多行函数:
单行函数:每一行都有一个返回值,但可以有多个变量。
多行函数:多行有一个返回值。
二、单行函数的分类
a.字符操作函数
b.数字操作函数
c.日期操作函数
d.数据类型转换函数
e.综合数据类型函数
三、字符操作函数
大小写操作函数:lower(小写), upper(大写), initcap(首字母大写)
字符串操作函数:concat, length, substr, instr, trim, replace, lpad, rpad
1.大小写操作函数:
select lower(ename), upper(ename),initcap(ename) from emp; select lower('mf TR'),upper('mf TR'),initcap('mf TR') from dual; //dual 是虚拟表
输出:mf tr MF TR Mf Tr
2.concat函数:连接,将两个字符串连接到一起
select ename,job,concat(ename,job) from emp;
注:oracle的concat()函数只支持两个参数,不支持两个以上字符串的拼接,如果要进行多个字符串的拼接的话,可以使用多个concat()函数嵌套使用。
例如:
select ename,job, concat(concat(ename,' _ '),job) from emp;
除此之外,oracle中字符串的连接还可以使用连接符“||”,支持多个参数连接。
select '员工:' || ename || ',工作是:' || job from emp;
3.length:字符串的长度
select length('张三') from dual; //按照字 select lengthb('张三') from dual; //按字节 select lengthc('张三') from dual; //unicode的长度
输出:2 , 4, 2。
4.substr:截取字符串。
substr(字符串,m,n),+m表示从左向右第m位开始,-m表示从右向左第m位开始(m大于0),n表示取几位。如果n没有值就是一直到字符串的结尾。
select ename,substr(ename,1,3) "first",substr(ename,-2)"last" from emp;
输出:SMITH SMI TH
5.instr:查找子字符串在父字符串中的位置
instr(父字符串,子字符串):返回子字符在父字符串的位置。0表示没有在父串找到该子串。
select ename,instr(ename,'A') "A在第几位" from emp;
6.trim:截掉字符串
select trim(leading 'a' from 'aaabbabaa') from dual; //截掉连续的前置的a select trim(trailing 'a' from 'aaabbabaa') from dual; //截掉连续的后置的a select trim(both 'a' from 'aaabbabaa') from dual; //截掉连续的前置和后置的a select trim('a' from 'aaaabbbaa') from dual; //如果没有说明是前置还是后置就是both全截掉
注:trim函数是截掉头或尾连续的字符,一般我们的用途是去掉头和尾的空格。
7.lpad,rpad:左铺垫,右铺垫
select lpad(1232,6,'*'),rpad('aaccbbdd',6,'@') from dual;
输出:**1232 aaccbb
6代表总共铺垫到多少位,* @ 是要铺垫的字符串。
注:lpad左铺垫,rpad右铺垫,一般用于美化输出结果。如果位数不足,按照截取后的结果显示,不报错。
8.replace:替换
replace(字符串,'A','B')将字符串中A字符替换为B
select replace(ename,'A','*') from emp;
四、数字操作函数
round(数字,n):四舍五入,n表示小数点后几位,0可以不写,表示取整,负数表示小数点前几位,下同
trunc(数字,n):全部舍弃
ceil(数字):取整,上进位
abs(数字):取绝对值
mod(数字A,数字B):取A除以B的余数
select round(45.923,2),round(45.923),round(45.234,-1) from dual;
输出:45.92 46 50
select trunc(45.92333,2),trunc(45.92666,2),trunc(45.9247,-2) from dual;
输出:45.92 45.92 0
select ceil(45.0002),ceil(45.666) from dual;
输出:46 46
select abs(-23.00) from dual;
输出:23
select mod(5,2) from dual;
输出:1
五、日期操作函数
sysdate:当前数据库的日期
select sysdate from dual;
重新设置时间显示格式
alter session set NLS_DATE_FROMAT='yyyy/mm/dd hh24:mi:ss';
截取时间的年月日
select hiredate,trunc(hiredate,'yyyy'),trunc(hiredate,'year') from emp;
注:数字的进位和截取是以小数点为中心,我们取小数点前或后的值,而日期的进位和截取是以年、月、日、时、分、秒为中心。
相关推荐
oracle函数总结——字符函数、数值函数、日期函数、转换函数、通用函数、事务处理等
字符函数——返回字符值 字符函数——返回数字 数字函数 日期函数 转 换 函 数 分 组 函 数 其 他 函 数
Oracle内置SQL函数-分类整理大全 ---------------------------------------------------- ...F.2 字符函数——返回数字 3 F.3 数字函数 5 F.4 日期函数 7 F.5 转 换 函 数 8 F.6 分 组 函 数 11 F.7 其 他 函 数 12
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 ...
Oracle内置SQL函数-分类整理大全 ...F.2字符函数——返回数字 F.3数字函数 F.4日期函数 F.5转 换 函 数 F.6分 组 函 数 F.7其 他 函 数 F.8 SQLPLUS常用命令 F.9 oracle客户端连接的文件配置: F.10修改表结构
SQL中的单记录函数1.ASCII返回与指定的字符对应的十进制数;SQL> select ascii(‘A’) A,ascii(‘a’) a,ascii(‘0’) zero,ascii(‘ ‘) space from dual; A A ZERO SPACE——— ——— ——— ——...
Direct Oracle Access 组件有两种版本,Direct Oracle Access Standard version 和 Direct Oracle Access Object version Object版允许你通过TOracleObject和TOracleReference 对象使用 Oracle8的对象扩展。 如果...
简单来说是本身可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。 常见的数据模型 1. 层次结构模型: 层次结构模型实质上是一种有根结点的定向有序树,IMS...
在oracle中有很多关于日期的函数,如: 1、add_months()用于从一个日期值增加或减少一些月份 date_value:=add_months(date_value,number_of_months) 例: SQL> select add_months(sysdate,12) “Next Year” ...
4.6 函数:字符串函数、数字函数和聚集函数(不是分组) 4.6.1 字符串函数 4.6.2 数字函数 4.6.3 聚集函数 4.7 日期函数(格式化的和按时间排列的) 4.7.1 日期函数 4.7.2 特殊格式的日期数据类型 4.7.3 嵌套函数 ...
4.6 函数:字符串函数、数字函数和聚集函数(不是分组) 91 4.6.1 字符串函数 91 4.6.2 数字函数 92 4.6.3 聚集函数 92 4.7 日期函数(格式化的和按时间排列的) 93 4.7.1 日期函数 93 4.7.2 特殊格式的日期数据...
COUNTRY CITY ——————– ——————– 中国 台北 中国 香港 中国 上海 日本 东京 日本 大阪 要求得到如下结果集: ——- ——————– 中国 台北,香港,上海 日本 东京,大阪 实际就是对字符实现一个聚合...
本文主要结合之前一次oracle迁移达梦的项目,将碰到的问题以及一系列踩过的坑列举出来供大家参考,数据库版本是达梦7。(本文中涉及到的部分对象名已用sch1,tab1等方式替换) 1、整体情况 迁移过程中失败任务数低于5%...
用】: Oracle公用函数类 // 【作 者】: 天灰 // // 【最后修改日期】: 2001/05/11[cxx] // 【变量定义规则】:‘C_’=字符型,‘I_’=整型,‘N_’=数字型,‘L_’=布尔型,‘A_’=数组型 //
A A ZERO SPACE ——— ——— ——— ——— 65 97 48 32 2. CHR 给出整数,返回对应的字符; SQL> select chr(54740) zhao,chr(65) chr65 from dual; ZH C — – 赵 A 3. CONCAT 连接两个字符串; SQL> select ...
—————————— 2007-06-29 02:50:06 下午 2》以24小时制显示 SQL> select to_char(sysdate,’YYYY-MM-DD HH24:MI:SS AM’)from dual; TO_CHAR(SYSDATE,’YYYY-MM-DDHH2 —————————— 2007-06-29...
Oracle 数据库中的SQL是当今市场上功能最强大的SQL实现之一,而本书全面展示了这一工具的威力。如何才能让更多人有效地学习和掌握SQL呢?Karen Morton及其团队在本书中提供了专业的方案:先掌握语言特性,再学习...
5.统计函数——列名应指定别名 35 6. Group By分组 36 7.Having子句 36 8.练习:表的查询 36 五. 在SQL *Plus中使用函数 37 1.字符串函数 37 2.数字函数 37 3.日期时间函数 38 4.转换函数 38 第五讲 修改SQL数据与...
二、 数据库命令——有关表、视图等的操作 1. 创建表employee 例1 定义一个人事信息管理系统中存放职工基本信息的一张表。可输入如下命令: SQL>CREATE TABLE employee (empno number(6) PRIMARY KEY, /* 职工编号...