码迷,mamicode.com
首页 > 数据库 > 详细

Oracle函数

时间:2016-08-26 18:36:38      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:

字符函数

  大小写控制函数

一:LOWER ()

--全部小写
SELECT LOWER(‘SCOTT‘) "Lowercase"
FROM DUAL;

说明:

低返回 char,与所有字母都小写。字符可以是任何数据类型 CHAR,
VARCHAR2、 NCHAR、 NVARCHAR2、 CLOB 或 NCLOB。返回值是相同的数据类型
char。数据库设置基于二进制的映射定义的字符的大小写
为基础的字符集。
技术分享

 

二:UPPER()

 

 

--全部大写
SELECT UPPER(‘scoot‘) "Uppercase"
FROM dual;

说明:

上层返回 char,与所有字母都大写。字符可以是任何数据类型 CHAR,
VARCHAR2、 NCHAR、 NVARCHAR2、 CLOB 或 NCLOB。返回值是相同的数据类型
char。数据库设置基于二进制的映射定义的字符的大小写
为基础的字符集。
技术分享

三:INITCAP()

--首字母大写
SELECT INITCAP(‘the soap‘) "Capitals"
FROM DUAL;

说明:

INITCAP 返回 char,大写,其他字母中每个单词的首字母
小写字母。由空白或不是的字符分隔单词
字母数字。
字符可以是任何数据类型 CHAR、 VARCHAR2、 NCHAR 或 NVARCHAR2。返回
值是相同的数据类型为 char。数据库设置初始字符的大小写
基于二进制的映射定义为基础的字符集。
技术分享

  字符控制函数

一:concat()

--连接
select concat(‘hehe‘,‘haha‘)hei from dual

说明

CONCAT 返回 char1 与 char2 连接。Char1 和 char2 可以是任意的
数据类型 CHAR、 VARCHAR2、 NCHAR、 NVARCHAR2、 CLOB 或 NCLOB。返回的字符串是在
相同的字符设置为 char1。其数据类型取决于数据类型的
参数。
在串联的两个不同的数据类型,Oracle 数据库返回的数据类型
结果在无损转换。因此,如果其中一个参数是 LOB,然后
返回的值是 LOB。如果其中一个参数是国家数据类型,则
返回的值是一个国家的数据类型。例如︰
■ CONCAT (CLOB,NCLOB) 返回 NCLOB
■ CONCAT (NCLOB、 NCHAR) 返回 NCLOB
■ CONCAT (NCLOB、 CHAR) 返回 NCLOB
■ CONCAT (NCHAR,CLOB) 返回 NCLOB
此函数等同于串联运算符 (|)。
技术分享

 

二SUBSTR()

技术分享

说明

SUBSTR 函数返回字符,字符位置开始部分
substring_length 个字符长。SUBSTR 计算长度使用字符作为
由输入的字符集定义。SUBSTRB 使用字节而不是字符。SUBSTRC
使用完整的 Unicode 字符。SUBSTR2 使用 UCS2 代码点。SUBSTR4 使用 UCS4
代码点。
■ 如果立场是 0,那么它被视为 1。
■ 如果位置是积极,然后从开始到 char Oracle 数据库计数
找到的第一个字符。
■ 如果位置为负数,然后 Oracle 倒推从结尾的字符。
■ 如果省略 substring_length,然后 Oracle 将返回所有字符到末尾
char。如果 substring_length 是小于 1,则 Oracle 返回 null。
字符可以是任何数据类型 CHAR、 VARCHAR2、 NCHAR、 NVARCHAR2、 CLOB 或NCLOB。
例外情况是 SUBSTRC、 SUBSTR2 和 SUBSTR4,不允许字符是
CLOB 或 NCLOB。位置和 substring_length 必须是数据类型数,或
任何数据类型可以隐式转换为数字,并且必须解析为
整数。返回值是作为字符浮点数传递相同的数据类型
作为 SUBSTR 的参数自动转换为整数。
 
三:length()  lengthb()
技术分享

技术分享

说明:

长度函数返回的字符长度长度计算长度使用
定义的输入字符的字符设置。LENGTHB 使用而不是字节
个字符。LENGTHC 使用完整的 Unicode 字符。LENGTH2 使用 UCS2 代码
点。LENGTH4 使用 UCS4 代码点。
字符可以是任何数据类型 CHAR、 VARCHAR2、 NCHAR、 NVARCHAR2、 CLOB 或NCLOB。
例外情况是 LENGTHC、 LENGTH2 和 LENGTH4,不允许字符是
CLOB 或 NCLOB。返回值是数字数据类型。如果 char 数据类型 CHAR,然后
长度,包括所有尾随空格。如果字符是 null,则此函数返回 null。
 
四:INSTR()

 技术分享

说明:

INSTR 函数搜索字符串的子字符串。搜索操作定义为
比较与相同长度的字符串的子字符串的子字符串参数
直到找到一个匹配或没有更多的平等的子字符串左边。每个连续
比较的字符串的子字符串开始一个字符向右 (向前搜索)
或一个字符向左 (向后搜索) 从第一个字符
以前比较的子字符串。如果找到等于子字符串的子字符串,则
该函数返回一个整数,指示这的第一个字符的位置
子字符串。如果找到了没有这样子字符串,则该函数返回零。
■ 位置是一个非零的整数,指示字符串的字符在 Oracle
数据库开始搜索 — — 第一次的第一个字符的位置
要比较的子字符串的子字符串。如果位置为负值,则 Oracle 计数
落后从结尾的字符串,然后从所得向后搜索
位置。
■ 发生是一个整数,指示子字符串在字符串中的哪个匹配项
Oracle 应搜索。发生的值必须为正数。如果发生
大于 1,则数据库不能在第一场比赛,但仍
上文所述,直到比赛比较连续字符串的子字符串,
已发现数发生。
INSTR 接受和返回字符的位置,如所输入的字符集,定义
在位置 1 的字符串的第一个字符。INSTRB 使用而不是字节
个字符。INSTRC 使用完整的 Unicode 字符。INSTR2 使用 UCS2 代码点。
INSTR4 使用 UCS4 代码点。
字符串可以是任何数据类型 CHAR、 VARCHAR2、 NCHAR、 NVARCHAR2、 CLOB或 NCLOB。
例外情况是 INSTRC、 INSTR2 和 INSTR4,不允许字符串
CLOB 或 NCLOB。
子字符串可以是任何数据类型 CHAR、 NCHAR、 NVARCHAR2、 VARCHAR2 CLOB,或
NCLOB。
返回的值是数字数据类型。
位置和发生必须是数据类型数或可以任何数据类型
能隐式转换为数字,并且必须解析为一个整数。默认值
位置和发生,都是 1,意思 Oracle 开始搜索,在第一次
子字符串的第一个匹配的字符串的字符。返回值是相对于
字符串的开始位置,无论位置的值。
 
五:LPAD() RPAD()
技术分享

说明:

LPAD 返回 expr1,左填充到长度 n 个字符与字符序列
在 expr2。这个函数是用于格式化输出的查询。
Expr1 和 expr2 都可以是任何数据类型 CHAR,VARCHAR2、 NCHAR、 NVARCHAR2,
CLOB 或 NCLOB。返回的字符串是 VARCHAR2 数据类型,如果 expr1 是字符数据
NVARCHAR2 如果 expr1 是国家字符数据类型和 LOB 类型如果 expr1 是 LOB
数据类型。返回的字符串是作为 expr1 相同的字符集。参数 n
必须是一个数字的整数或可以隐式地转换为数字的值
整数。
如果您不指定 expr2,默认为一个空格。如果 expr1 是长于 n,
然后,此函数返回 expr1 适合的部分在 n。
参数 n 是返回值的总长度是显示在你
终端屏幕。在大部分的字符集,这也是中的字符数
返回值。然而,在一些多字节字符集的显示长度
字符的字符串可以不同的字符串中的字符数。
 
六:TRIM() 
技术分享 

说明:

修剪使您可以修剪前导或尾随字符 (或两者) 从一个字符
字符串。如果 trim_character 或 trim_source 是原义字符,然后你必须附上
它在单引号中。
■ 如果您指定领先,然后 Oracle 数据库中删除任何前导字符
等于 trim_character。
■ 如果您指定尾,然后 Oracle 中移除任何尾随字符等于
trim_character。
■ 如果指定两个或三个没有,然后 Oracle 删除前导和尾随
字符等于 trim_character。
■ 如果你没有指定 trim_character,则默认值是一个空的空间。
■ 如果您指定仅 trim_source,然后 Oracle 删除前导和尾随空白
空格。
■ 该函数返回一个值与数据类型 VARCHAR2。最大长度
值是 trim_source 的长度。
■ 如果 trim_source 或 trim_character 是 null,那么 TRIM 函数返回
则为 null。
Trim_character 和 trim_source 可以是 VARCHAR2 或可以是任何数据类型
隐式转换为 VARCHAR2。返回的字符串是 VARCHAR2 (NVARCHAR2) 数据
如果 trim_source 是 CHAR 或 VARCHAR2 (NCHAR 或 NVARCHAR2) 的数据类型和 CLOB,请键入
如果 trim_source 是 CLOB 数据类型。返回的字符串是在相同的字符设置为
trim_source。
 
    日期函数:
一:ADD_MONTHS()增加月数
技术分享

说明:

ADD_MONTHS 返回日期日期加上整数个月。一个月由定义的。
会话参数 NLS_CALENDAR。日期参数可以是一个 datetime 值或任何
可以隐式转换为日期的值。整数参数可以是
整数或可以隐式转换为一个整数的任何值。返回类型是
总是日期,而日期的数据类型。如果日期是本月的最后一天或
如果生成的月有时间少于一天中的日期,然后结果天
是结果月份的最后一天。否则,结果有的同一天
组件作为日期。
 
二:months_between 两个日期相差的月数

select months_between
(to_date(‘02-02-1995‘,‘MM-DD-YYYY‘),
TO_DATE(‘01-01-1995‘,‘MM-DD-YYYY‘)) "MONTHS"
from dual;

技术分享

  日期相减

一:两个日期天数之差

select floor(sysdate - to_date(‘20020405‘,‘yyyymmdd‘))from dual;

技术分享

 

--隐式转换
select * from emp where hiredate=‘17-12月-80‘;

技术分享

--显示转换

技术分享

--to_char()对日期的转换
select to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss‘) from dual;

技术分享

 

--to_char()对数字的转换
select to_char(sal,‘L9,999,99‘) from emp;

技术分享

--数字函数
--round()四舍五入
select round(12.45,1) from dual;

技术分享

--trunc 截断
select trunc(15.79,1)"truncate" from dual;

技术分享

 

--通用函数
--nv1和nv12 滤空函数

select sal*12工资,comm 奖金,sal*12+nvl(comm,0) from emp;

技术分享

 


select sal*12工资,comm 奖金,sal*12+nvl2(comm,comm,0) from emp;

技术分享

--decode函数
select product_id,
decode(warehouse_id,1,‘Southlake‘,
2,‘San Francisco‘,
3,‘New Jersey‘,
4,‘Seattle‘,
‘Non domestic‘) "Location"
from inventories where product_id< 1775 order by product_id,"Location"

技术分享

 
 

Oracle函数

标签:

原文地址:http://www.cnblogs.com/lizeyang/p/5811238.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!