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=''

 

posted @ 2021-08-24 14:22  黑狗已醒  阅读(92)  评论(0编辑  收藏  举报