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'


转载于:https://www.cnblogs.com/lavandachen/articles/2030473.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值