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(列名) 把多行合并成一行
合并后查询结果如下
未完待续。。。大家遇到的其他常用/好用 函数欢迎留言分享。。。