Oracle 不常用的函数
1.instr为字符查找函数
select instr('ab','a') from dual; --1
select instr('ab','c') from dual; --0
2.listagg 列转行
--aa/bb 代表列
select listagg('aa' || '%' || 'bb') within group (order by 'aa') from dual; -- aa%bb
3. distinct 去重函数
select distinct 'aa' from dual; -- aa
4.replace 替换
select replace(replace('ab ',chr(10),''),chr(13),'')) from dual; -- ab
5.select id,mer_no,mer_level from t_test a start with a.id='111111111111' connect by prior id=parent_mer_id;------向下遍历
结果类似:
0级
1级
2级
...
6 .select distinct id,mer_no,mer_level from t_test a start with a.id='111111111111' connect by prior parent_mer_id=id;------向上遍历
结果类似:
...
2级
1级
0级
7.select translate('列','a','b') from dual;--把列中的a 替换成 b (1:1 替换)
8.merge 合并函数 (下图解释,判断id 在t_mer_main 表中是否存在,存在更新 merNo和mer_name字段,不存在插入操作),1 表面,2 判断条件 3 更新的字段 4 虚拟表(传入的参数)
9.多行转一列
select replace(to_char(vm_concat(aa||'%'||bb)),',','%') from table where id=''