Oracle 部分函数使用说明

oracle有些函数可能我知道是什么作用,但是具体其实说不清楚,这里是我这几天看到的函数使用方法及说明,记录一下,以后看看

--1、replace('str',oldVal,newVal)替换功能方法

 replace('aaaaabbbbbccccddddd','a','')  --把字符串中的a替换为''

 

 select replace('bbbbbbcccccaaaa','c') from dual;  --把其中的c字符给剔除

 

--2、GREATEST(2,3,'4') 比较两个值或者多个值中最大的哪一个值 对应数字也可以是字符串

 


3、nvl(bonus,0)    意思是   如果  bonus  is  null  ,  那么返回 0,  否则返回   bonus


 
4、instr(str1,str2) --如果str1在str2中没有找到 函数返回0,否自返回对应下标位置

SELECT instr('laotan','n') FROM dual; -- 返回 1 查找‘n’ 在字符‘laotan’ 中的下标位置

SELECT instr('laotan','an') FROM dual;  -- 返回 5   查找‘an’ 在字符‘laotan’ 中的下标位置

SELECT instr('hello laotan','a',1,2) FROM dual;  -- 返回 11 从第一个字符开始找,查询字符 ‘a’ 在字符串 ‘'hello laotan’第二次出现的下标位置


5、coalesce(name,'没有值') 如果没有值,那么返回后后面设定的参数


6、coalesce(bonus,0,1) 如果 bonus is null , 那么返回 0, 否则返回 bonus。
这里的最后一个参数 1
coalesce(bonus,null,0) 如果 bonus is null , 那么第2个参数还是 null, 最后返回第3个参数 0




7、decode(name,‘apple’,0) 如果 name = 'apple' 那么返回 0
否则的话 , 就是返回 null 了。


--8、substr(1000.222,-3) 截取字符串函数





9、把对应的字符串中的 ‘l’ 字符全部找出来, 替换字符 translate()





 10、拿到字符长度 length(str)
select length(translate('lao,tan,hello,world', 'l' || 'lao,tan,hello,world', 'l')) as cnt from dual;



11,wmsys.wm_concat(列名) 把多行合并成一行

合并后查询结果如下





未完待续。。。大家遇到的其他常用/好用 函数欢迎留言分享。。。

posted @ 2014-12-29 22:13  莫名字  阅读(260)  评论(0编辑  收藏  举报