二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"