oracle 数据库 怎么把一个表中的一个字段按规律拆分,并显示出来

oracle 数据库 怎么把一个表中的一个字段按规律拆分,并显示出来,第1张

oracle

数据库拆分字段的实现方法:

用正则表达式拆分某一个字段,比如有a,b,c,d,e

sql写法如下:

select

regexp_substr('a,b,c,d,e,','[^,]+',1,rownum)

from

dual

connect

by

rownum<=length(regexp_replace('a,b,c,',

'[^,]',

null))

结果:

执行结果如下:

1

a

2

b

3

c

4

d

5

e

SELECT REGEXP_SUBSTR(t.PATH_IDS||',', '[^,]+', 1, 1),

       REGEXP_SUBSTR(t.PATH_IDS||',', '[^,]+', 1, 2),

       REGEXP_SUBSTR(t.PATH_IDS||',', '[^,]+', 1, 3),

       DECODE(REGEXP_SUBSTR(t.PATH_IDS||',', '[^,]+', 1, 5), NULL, NULL, REGEXP_SUBSTR(t.PATH_IDS||',', '[^,]+', 1, 4)),

       DECODE(REGEXP_SUBSTR(t.PATH_IDS||',', '[^,]+', 1, 5), NULL, REGEXP_SUBSTR(t.PATH_IDS||',', '[^,]+', 1, 4), REGEXP_SUBSTR(t.PATH_IDS||',', '[^,]+', 1, 5))

FROM 机构层级关系表 t

前三列根据正则匹配,获取对应的分割后的值,没有啥讲的,

第四列要判断是否存在第五列,如果不存在,则第四列要空,存在则用第四列的值

第五列要判断是否存在第五列,如果不存在,则给第四列的值,存在则用第五列的值


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9981263.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存