网站首页 > 文章中心 > 其它

oracle怎么拆分列

作者:小编 更新时间:2023-08-20 13:57:49 浏览量:150人看过

oracle 如何将 B 列 拆为6列呢

select?*

from?(select?trim(regexp_substr(A,?'[^,]+',?1,?IDX))?ftype

from?tablename?a,?(select?level?IDX?from?dual?connect?by?level?1000)?b

where?c.ftype?is?not?null

上面的SQL比较麻烦,但一条SQL可以出来,你可以试一下

另外,你可以写一下函数进行拆分,把相关的逻辑放到函数体里面,看起来比较简洁

希望可以帮到你

oracle 拆分列

加个序号,然后自连接就行了,例子:(自己造的数据,表、字段自己替换)

--数据模拟

WITH?TMP?AS

(SELECT?CASE

'Logged?In'

ELSE

'Logged?Out'

FROM?DUAL

CONNECT?BY?LEVEL?=?10

UNION?ALL

SELECT?CASE

CONNECT?BY?LEVEL?=?10),

--添加一个序号?

TMP1?AS

(SELECT?T.*,?ROW_NUMBER()?OVER(PARTITION?BY?ID,?TYPE?ORDER?BY?TIME)?RN

FROM?TMP?T)

--自连接

SELECT?A.TYPE,?A.TIME,?B.TYPE,?B.TIME,?A.ID

FROM?TMP1?A

LEFT?JOIN?TMP1?B

ON??A.TYPE?!=?B.TYPE?AND

A.ID?=?B.ID?AND

A.RN?=?B.RN

WHERE?A.TYPE?=?'Logged?In'

关于Oracle中实现单列拆分成多列的技术应用

①前言:通过使用FineBI进行"点地图"方式来展现数据.

substr函数的用法 :

取得字符串中指定起始位置和长度的字符串 ,默认是从起始位置到结束的子串.

substr( string, start_position, [ length ] )? ? 即:? substr('目标字符串',开始位置,长度)

instr函数的用法 :

instr是一个非常好用的字符串处理函数,几乎所有的字符串分隔都用到此函数.

Oracle高手请接招:以逗号为分隔符把一列拆成3列

oracle 中可以用connect by把字符串按都好分割:

比如定义字符串:

SELECT DISTINCT REGEXP_SUBSTR (pv_no_list,'[^,]+',1,LEVEL) as "token"

FROM DUAL

CONNECT BY REGEXP_SUBSTR (pv_no_list,'[^,]+',1,LEVEL) IS NOT NULL

order by 1

返回结果:

TOKEN

oracle如何将aaa_bbb_ccc(为一列中的内容)进行拆分3列

上面的语句是按照下划线来划分为三段,需要注意的oracle中substr函数,是从第i位开始截取长度为j的字段

以上就是土嘎嘎小编为大家整理的oracle怎么拆分列相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章