ORACLE 几个常用函数的MARK

1.lpad

 

在Oracle/PLSQL中,lpad函数将左边的字符串填充一些特定的字符,其语法格式如下:    
lpad( string1, padded_length, [ pad_string ] )
其中string1是需要粘贴字符的字符串
padded_length是返回的字符串的数量,如果这个数量比原字符串的长度要短,lpad函数将会把字符串截取成padded_length;pad_string是个可选参数,这个字符串是要粘贴到string1的左边,如果这个参数未写,lpad函数将会在string1的左边粘贴空格。

例如:

select lpad('tech',2) from dual
返回值:te

select lpad('tech', 8, '0') from dual
返回值:0000tech

例如,在补齐数位时,比如

select lpad(rownum, 2, 0) ymd
  from dual
connect by rownum <= substr('20101130', 5, 2)
这样,返回的就是:01,02,03,04,05,06,07,08,09,10,11

2. nvl

 

1.NVL函数
从两个表达式返回一个非 null 值。

语法
NVL(eExpression1, eExpression2)

参数
eExpression1, eExpression2

如果 eExpression1 的计算结果为 null 值,则 NVL( ) 返回 eExpression2。如果 eExpression1 的计算结果不是 null 值,则返回 eExpression1。eExpression1 和 eExpression2 可以是任意一种数据类型。如果 eExpression1 与 eExpression2 的结果皆为 null 值,则 NVL( ) 返回 .NULL.。

返回值类型
字符型、日期型、日期时间型、数值型、货币型、逻辑型或 null 值

2.NVL2函数

语法
NVL(eExpression0, eExpression1,eExpression2)

参数
eExpression0,eExpression1, eExpression2

如果 eExpression0 的计算结果为 null 值,则 NVL( ) 返回 eExpression2。如果 eExpression1 的计算结果不是 null 值,则返回 eExpression1。eExpression1和eExpression2类型不同的话,eExpression2会转换为eExpression1的类型 

返回值类型
字符型、日期型、日期时间型、数值型、货币型、逻辑型或 null 值

3. nullif 和 decode

NULLIF (expr1, expr2)
expr1與expr2相等返回NULL,不等則返回expr1 注意類型要一致

decode (expression, search_1, result_1, search_2, result_2, ., search_n, result_n, default) 
decode函數比較表達式和搜索字,如果匹配,返回結果;如果不匹配,返回default值;如果未定義default值,則返回空值。

4. instr 和 substr

INSTR方法的格式为
INSTR(源字符串, 目标字符串, 起始位置, 匹配序号)

例如:INSTR('CORPORATE FLOOR','OR', 3, 2)中,源字符串为'CORPORATE FLOOR', 目标字符串为'OR',起始位置为3,取第2个匹配项的位置。

默认查找顺序为从左到右。当起始位置为负数的时候,从右边开始查找,找不到则返回0。

所以SELECT INSTR('CORPORATE FLOOR', 'OR', -1, 1) "Instring" FROM DUAL的显示结果是

Instring
——————
14

另外类似的有substr
substr( string, start_position, [ length ] )
说明:
string is the source string.
start_position is the position for extraction. The first position in the string is always 1.
length is optional. It is the number of characters to extract. If this parameter is omitted, substr will return the entire string.
For example:
                     substr('This is a test', 6, 2)     would return 'is'
                     substr('This is a test', 6)     would return 'is a test'
                     substr('TechOnTheNet', 1, 4)     would return 'Tech'
                     substr('TechOnTheNet', -3, 3)     would return 'Net'
                     substr('TechOnTheNet', -6, 3)     would return 'The'
                     substr('TechOnTheNet', -8, 2)      would return 'On'


posted @ 2011-04-27 15:37  lavandachen  阅读(523)  评论(0编辑  收藏  举报