一、数值型函数
函 数 |
功 能 |
实 例 |
结 果 |
abs |
求绝对值函数 |
abs(−5) |
5 |
sqrt |
求平方根函数 |
sqrt(2) |
1.41421356 |
power |
求幂函数 |
power(2,3) |
8 |
cos |
求余弦三角函数(用弧度)
|
cos(3.14159) |
−1 |
mod |
求除法余数 |
mod(1600, 300) |
100 |
ceil |
求大于等于某数的最小整数 |
ceil(2.35) |
3 |
floor |
求小于等于某数的最大整数 |
floor(2.35) |
2 |
round |
按指定精度对十进制数四舍五入 |
round(45.923, 1)
round(45.923, 0)
round(45.923, −1) |
45.9
46
50 |
trunc |
按指定精度截断十进制数 |
trunc(45.923, 1)
trunc(45.923)
trunc(45.923, −1) |
45.9
45
40 |
二、oracle中的dual表
2.1 理解
1、DUAL是 SYS用户的一个TABLE.
2、Dual是Oracle中的一个实际存在的表,任何用户均可读取,常用在没有目标表的Select语句块中,用来构成select的语法规则,oracle保证dual里面永远只有一条记录。
3、DUAL就是个一行一列的表,
该表和系统中的其他表一样,一样可以执行插入、更新、删除操作,还可以执行drop操作。但是不要去执行drop表的操作,否则会使系统不能用,数据库起不了,会报Database startup crashes with ORA-1092错误。
2.2 DUAL 能做什么
1、查找当天日期
SQL> select sysdate from dual;
2、查找当前日期的当月第一天
SQL> select trunc(sysdate,’MONTH’) from dual;
3、查找当前日期的当月最后一天
SQL> select trunc(last_day(sysdate)) from dual;
4、查看当前用户,可以在SQL Plus中执行下面语句
SQL> select user from dual;
5、获得当前系统时间
SQL>
select to_char(sysdate,’yyyy-mm-dd hh24:mi:ss’) from dual;
6、获得主机名
SQL>
select SYS_CONTEXT(‘USERENV’,'TERMINAL’) from dual;
7、获得当前locale
SQL>
select SYS_CONTEXT(‘USERENV’,'language’) from dual;
8、获得一个随机数
SQL>
select dbms_random.random from dual;
9、查看当前日期、时间
SQL> select sysdate from dual;
10、获得序列your_sequence的下一个值
SQL>
select your_sequence.nextval from dual;
11、获得序列your_sequence的当前值
SQL>
select your_sequence.currval from dual;
12、可以用做计算器
参考网址:http://yesican.blog.51cto.com/700694/269814
http://www.itfarmer.com.cn/plsql/1093.html
三、字符型函数
函数名称
|
功 能 |
实 例 |
结 果 |
ascii |
获得字符的ASCII 码 |
Ascii('A') |
65 |
chr |
返回与ASCII 码相应的字符 |
Chr(65) |
A |
lower |
将字符串转换成小写 |
lower ('SQL Course') |
sql course |
upper |
将字符串转换成大写 |
upper('SQL Course') |
SQL COURSE |
initcap |
将字符串转换成每个单词以大写开头 |
initcap('SQL course') |
Sql Course |
concat |
连接两个字符串 |
concat('SQL', ' Course') |
SQL Course |
substr |
给出起始位置和长度,返回子字符串 |
substr('String',1,3) |
Str |
length |
求字符串的长度 |
length('Wellcom') |
7 |
instr |
给出起始位置和出现的次数,求子字符串在字符串中出现的位置 |
instr('String', 'r',1,1) |
3 |
lpad |
用字符填充字符串左侧到指定长度 |
lpad('Hi',10,'-') |
--------Hi |
rpad |
用字符填充字符串右侧到指定长度 |
rpad('Hi',10,'-') |
Hi-------- |
trim |
在一个字符串中去除另一个字符串 |
trim('S' FROM 'SSMITH') |
MITH |
replace |
用一个字符串替换另一个字符串中的子字符串 |
replace('ABC', 'B', 'D') |
ADC |
四、日期型函数
1、Oracle使用内部数字格式来保存时间和日期,包括世纪、年、月、日、小时、分、秒。缺省日期格式为DD-MON-YY,如“08-05月-03”代表2003年5月8日。
2、SYSDATE是返回系统日期和时间的虚列函数。
函 数 |
功 能 |
实 例 |
结 果 |
months_between |
返回两个日期间的月份 |
months_between ('04-11 月-05','11-1 月
-01') |
57.7741935 |
add_months |
返回把月份数加到日期上的新日期 |
add_months('06-2 月-03',1)
add_months('06-2 月-03',-1) |
06-3 月-03
06-1 月-03 |
next_day |
返回指定日期后的星期对应的新日期 |
next_day('06-2 月-03','星期一') |
10-2 月-03 |
last_day |
返回指定日期所在的月的最后一天 |
last_day('06-2 月-03') |
28-2月-03 |
round |
按指定格式对日期进行四舍五入 |
round(to_date('13-2 月-03'),'YEAR')
round(to_date('13-2 月-03'),'MONTH')
round(to_date('13-2 月-03'),'DAY') |
01-1 月-03
01-2 月-03
16-2 月-03
(按周四舍五入)
|
trunc |
对日期按指定方式进行截断 |
trunc(to_date('06-2 月-03'),'YEAR')
trunc(to_date('06-2 月-03'),'MONTH')
trunc(to_date('06-2 月-03'),'DAY') |
01-1 月-03
01-2 月-03
02-2 月-03
(按周截断
|
五、日期转换格式字符
代 码 |
代表的格式 |
例 子 |
AM、PM |
上午、下午 |
08 AM |
D |
数字表示的星期(1~7) |
1,2,3,4,5,6,7 |
DD |
数字表示月中的日期(1~31) |
1,2,3,…,31 |
MM |
两位数的月份 |
01,02,…,12 |
Y、YY、YYY、YYYY |
年份的后几位 |
3,03,003,2003 |
RR |
解决Y2K 问题的年度转换 |
|
DY |
简写的星期名 |
MON,TUE,FRI,… |
DAY |
全拼的星期名 |
MONDAY,TUESDAY,… |
MON |
简写的月份名 |
JAN,FEB,MAR,… |
MONTH |
全拼的月份名 |
JANUARY,FEBRUARY,… |
HH、HH12 |
12小时制的小时(1~12) |
1,2,3,…,12 |
HH24 |
24 小时制的小时(0~23) |
0,1,2,…,23 |
MI |
分(0~59) |
0,1,2,…,59 |
SS |
秒(0~59) |
0,1,2,…,59 |
,./-;: |
原样显示的标点符号 |
|
'TEXT' |
引号中的文本原样显示 |
TE |
sql:
SELECT TO_CHAR(sysdate,'YYYY-MM-DD HH24:MI:SS AM DY') FROM dual;
sql:
SELECT TO_CHAR(sysdate,'YYYY" 年"MM" 月"DD" 日"')FROM dual;
六、转换函数
函 数 |
功 能 |
实 例 |
结 果 |
To_char |
转换成字符串类型 |
To_char(1234.5, '$9999.9') |
$1234.5 |
To_date |
转换成日期类型 |
To_date('1980-01-01', 'yyyy-mm-dd') |
01-1 月-80 |
To_number |
转换成数值类型 |
To_number('1234.5') |
1234.5 |
说明:
Oracle可以自动根据具体情况进行如下的转换:
(1) 字符串到数值。(2) 字符串到日期。(3) 数值到字符串。(4)日期到字符串。
sql:
SELECT SYSDATE,to_char(SYSDATE,'YYyysp') FROM dual;
七、数值转换
代 码 |
代表的格式 |
例 子 |
9 |
代表一位数字,如果是正数,前面是空格,如果是负数,前面是-号 |
9999 |
0 |
代表一位数字,在相应的位置上如果没有数字则出现0 |
0000 |
, |
逗号,用作组分隔符 |
99,999 |
. |
小数点,分隔整数和小数 |
999.9 |
$ |
$货币符号 |
$999.9 |
L |
本地货币符号 |
L999.99 |
FM |
去掉前后的空格 |
FM999.99 |
EEEE |
科学计数法 |
9.9EEEE |
S |
负数符号−放在开头 |
S999.9 |
sql:
SELECT TO_CHAR(123.45,'0000.00'), TO_CHAR(12345,'L9.9EEEE'), TO_CHAR(12345,'L9,9999') ,TO_CHAR(12345,'L9,9') FROM dual;
说明:
如果实际位数超过指定位数,则会填充为#号
八、其他常用函数
函 数 |
功 能 |
实 例 |
结 果 |
nvl |
空值转换函数 |
nvl(null, '空') |
空 |
decode |
实现分支功能 |
decode(1,1, '男', 2, '女') |
男 |
userenv |
返回环境信息 |
userenv('LANGUAGE') |
SIMPLIFIEDCHINESE_CHINA.ZHS16GBK |
greatest |
返回参数的最大值 |
greatest(20,35,18,9) |
35 |
least |
返回参数的最小值 |
least(20,35,18,9) |
9 |
说明:
字符串的比较原则是,依次转换为ASCII码,先比较第一位,如果相同,则继续比较第二位,依此类推,直到出现大小关系
nvl
例:
nvl(comm, 0):用0代替空的Comm值。
nvl(hiredate, '01-1月-97'):用1997年1月1日代替空的雇佣日期。
nvl(job, '无'):用“无”代替空的职务。
decode例:
sql:
SELECT name,age,decode(age, '26', '年龄26','12','年龄12','年龄不大于10') FROM userinfor;
说明:
如果age字段的内容为26”则返回“
年龄26”,如果是“12”则返回“
年龄12”。如果不是“ 26” 、“ 12” 之一, 则返回“
年龄不大于10”
userenv
例:
函数userenv返回用户环境信息字符串,该函数只有一个字符串类型的参数,参数的内容为如下之一的字符串,可以不区分大小写:
* ISDBA:判断会话用户的角色是否为SYSDBA,是则返回TRUE。
* INSTANCE:返回会话连接的INSTANCE标识符。
* LANGUAGE:返回语言、地区、数据库字符集信息。
* LANG:返回会话语言的ISO简称。
* TERMINAL:返回正在会话的终端或计算机的标识符。
分享到:
相关推荐
韩顺平Oracle笔记——函数.pptx韩顺平Oracle笔记——函数.pptx
ORACLE 报表分析 利剑——分析 函数
oracle新手入门指导之三——ORACLE常用函数大全 .txtoracle新手入门指导之三——ORACLE常用函数大全 .txt
Oracle经典教程3——子查询和常用函数
oracle函数总结——字符函数、数值函数、日期函数、转换函数、通用函数、事务处理等
oracle新手入门指导之三续——精简ORACLE常用函数大全.txtoracle新手入门指导之三续——精简ORACLE常用函数大全.txt
·1Oracle分析函数一——函数列表 ·2Oracle分析函数二——函数用法 ·3Oracle分析函数三——SUM,AVG,MIN,MAX,COUNT ·4Oracle分析函数四——函数RANK,DENSE_RANK,FIRST,LAST… ·5Oracle分析函数五——统计分析...
Oracle分析函数——函数列表 SUM :该函数计算组中表达式的累积和 MIN :在一个组中的数据窗口中查找表达式的最小值 MAX :在一个组中的数据窗口中查找表达式的最大值 AVG :用于计算一个组和数据窗口内表达式的...
Python Excel 处理函数 以及 OracleHelper 工具类(csdn)————程序
Oracle内置SQL函数-分类整理大全 ---------------------------------------------------- From: lihaichen http://blog.oracle.com.cn/?uid/19500 Oracle内置SQL函数-分类整理大全 1 F.1字符函数——返回字符值 ...
Oracle数据库(Database)是一个数据容器,它包含了表、索引、视图、过程、函数、包等对象,并对这些对象进行统一的管理。用户只有和一个确定的数据库连接,才能使用和管理该数据库中的数据。 逻辑存储结构 表空间 ...
oracle wm_concat(column)函数使我们经常会使用到的,下面就教您如何使用oracle wm_concat(column)函数实现字段合并,如果您对oracle wm_concat(column)函数使用方面感兴趣的话,不妨一看。shopping:——————...
oracle 一些运算函数的基本用法本章通过实例的方法引导读者快速掌握 SQL 的使用,从而能够利用【SQL Plus Worksheet】等工具,使用标准 SQL 语言完成对数据库数据的日常管理工作。
第4章 规划oracle 应用程序——方法、风险和标准 第ⅱ部分 sql 和sql*plus 第5章 sql 中的基本语法 第6章 基本的sql*plus 报表和命令 第7章 文本信息的收集与更改 第8章 正则表达式搜索 第9章 数值处理 ...
oracle汉字转拼音package 1.获得全拼 2.拼音首字母 3.拼音截取等 需要用的时候,调用这个包里的函数,就可以获得全部拼音 SQL codeselect GetHZPY.GetHzFullPY('汉字') from dual result:HanZi 调用这个 SQL ...
在oracle中管道函数是用来返回行集合的,我们可以像查询物理表一样查询它或者将它的值赋给其它集合变量。 oracle中的管道函数有以下几个特点: 管道函数为并行执行,在普通的函数中使用dbms_output输出的信息,需要...
Oracle内置SQL函数-分类整理大全 F.1字符函数——返回字符值 F.2字符函数——返回数字 F.3数字函数 F.4日期函数 F.5转 换 函 数 F.6分 组 函 数 F.7其 他 函 数 F.8 SQLPLUS常用命令 F.9 oracle客户端连接的文件...