oracle 字符串转成行

2021-01-23 18:46:4711

SELECT SUBSTR (T.RPT_ID,

INSTR (T.RPT_ID,',',1,C.LV)+ 1,

INSTR (T.RPT_ID,',',1,C.LV + 1)- (INSTR (T.RPT_ID,',',1,C.LV)+ 1))

AS RPT_ID

FROM (SELECT ',' || '85,86,87' || ',' RPT_ID,

LENGTH ('85,86,87' || ',') - NVL (LENGTH (REPLACE ('85,86', ',')), 0) CNT

FROM DUAL) t,

(SELECT LEVEL lv

FROM DUAL

CONNECT BY LEVEL <= LENGTH('85,86,87' || ',') - NVL(LENGTH(REPLACE('85,86,87', ',')), 0)) c

WHERE T.cnt >= c.lv

说明:CNT表示串里面有多少字符。

当是字符串是表中的字段时,取level<=最大个数

如:

1).取最大个数

SELECT MAX(LENGTH(RPT_ID || ',') -

NVL(LENGTH(REPLACE(RPT_ID, ',')), 0)) INTO v_c

FROM DIM_AUDIT_TABLE@sjmh_inter;

2).l转成行

SELECT T.T_NAME,

T.T_NAME_COMM,

T.T_COLUMN,

T.T_COLUMN_COMM,

t.COMMENT_NL,

t.COMMENT_NL_TIME,

t.SEQ_USER_ID,

SUBSTR(T.RPT_ID,

INSTR(T.RPT_ID, '','', 1, C.LV) + 1,

INSTR(T.RPT_ID, '','', 1, C.LV + 1) -

(INSTR(T.RPT_ID, '','', 1, C.LV) + 1)) AS RPT_ID

FROM (SELECT A.T_NAME,

A.T_NAME_COMM,

A.T_COLUMN,

A.T_COLUMN_COMM,

a.COMMENT_NL,

a.COMMENT_NL_TIME,

a.SEQ_USER_ID,

'','' || A.RPT_ID || '','' RPT_ID,

LENGTH(A.RPT_ID || '','') -

NVL(LENGTH(REPLACE(A.RPT_ID, '','')), 0) CNT

FROM DIM_AUDIT_TABLE@sjmh_inter A

WHERE a.COMMENT_NL is not null) T,

(SELECT LEVEL LV FROM DUAL CONNECT BY LEVEL <= '||v_c||') C

WHERE C.LV <= T.CNT;

注:如果是上面代码是远程的代码,(SELECT LEVEL LV FROM DUAL CONNECT BY LEVEL <= '||v_c||') C,不要用dual表,可以改用all_objects或user_objects, 要不然能查询,但是把查询出来的SQL插入到某个表时,只能插入一行

点击这里复制本文地址

以上内容由聚米学院网友整理呈现,如对侵犯您的权益,请联系邮箱:fzsbm@qq.com

支持Ctrl+Enter提交

oracle 字符转正规表达,oracle 字符串转成行相关推荐

  1. oracle字符nul怎么输入,oracle - 如何摆脱Oracle数据库中的NUL字符? - 堆栈内存溢出...

    就个人而言,我会使用CHR()来识别零值. nul是ASCII 0, CHR()将返回您传入的数字的字符表示. SQL> with the_data as ( 2 select 'a' || c ...

  2. oracle 字符超长,oracle存储超长字符串

    oracle 字符.数值.日期处理_计算机软件及应用_IT/计算机_专业资料.字符及处理方法 1.固定长度字符串: char(n) 空格补足,效率高,最大 2000. 2.变长: varchar(n) ...

  3. oracle 从后往前,oracle从后往前截取字符串 oracle截取字符串后三位

    oracle怎么从后开始截取字符? 1.在oracle中经常需要使用到截取字符串函数substr.语法:substr(str,num1,[num2]) 默认情况下都是只需要两个参数,它的意思是从第二个 ...

  4. oracle md5 重复,33-SQLServer和Oracle使用MD5加密字符串不一致的问题

    一.总结 1.varchar: 可变长度的非Unicode字符数据.n的值必须在1到8000之间.n是2的话,表示2个字节,所以可以存储2个英文,只能存储1个中文. nvarchar: 可变长度的Un ...

  5. oracle数据库 交集,Oracle两个逗号分割的字符串,获取交集、差集(sql实现过程解析)...

    Oracle数据库的两个字段值为逗号分割的字符串,例如:字段A值为"1,2,3,5",字段B为"2". 想获取两个字段的交集(相同值)2,获取两个字段的差集(差 ...

  6. oracle和当前时间作比较,Oracle字符和时间比较

    数据库中的字段 2017-07-11 13:37:51  类型是char 或者varchar 要进件与 '20170625' 比较,格式不一致,需要将他转换成:yyyyMMdd 字符串 1.先to_d ...

  7. Oracle 与 Mysql NULL值,空字符串''的区别

    Oracle(null等同于空字符'') 1.oracle插入空字符串默认替换成null 2.oracle查询(null和被替换的空字符)时使用 is null/is not null 3.使用聚合函 ...

  8. java oracle 字符_Oracle转义字符

    1.oracle 特殊字符 转义 关键词: oracle    转义 环境:oracle 9i  plsql 在plsql里边执行: update userinfo set pageurl='myjs ...

  9. oracle插入时间报错,Oracle 插入时间时 报错:ORA-01861: 文字与格式字符串不匹配 的解决办法...

    一.写sql的方式插入到Oracle中 往oracle中插入时间  '2007-12-28 10:07:24' 如果直接按照字符串方式,或者,直接使用to_date('2007-12-28 10:07 ...

最新文章

  1. MyBatis构建sql时动态传入表名以及字段名
  2. 怎么运行java虚拟机_Java代码如何运行在Java虚拟机中
  3. 过山车(HDU-2063)
  4. 苹果cms快鸭影视海螺精品模板
  5. 英语学习笔记2019-11-01
  6. java 杭电3784继续xxx定律 栈的使用
  7. apk一键脱壳工具_一键新机!强大的抹机王来了!
  8. SpringDataJPA使用Specification动态查询和分页
  9. s5pv210时钟系统详解
  10. 安装gfortran
  11. 数据分析行业的发展前景怎么样? 未来关于十年数据分析行业的5种预测
  12. 【前沿技术】浅析搜狗AI主播背后的核心技术
  13. 安装WampServer后无法打开localhost的问题
  14. 码住丨这五款app打开了新世界的大门
  15. 勾股定理怎么在html上面显示,勾股定理怎么算?
  16. 天才少年曹原再上热搜,25岁,3年5篇Nature一作论文
  17. #边学边记 必修4 高项:对事的管理 第5章 项目成本管理 之 项目成本预算
  18. 奥地利经济部长表示无需监管区块链
  19. Verilog 非阻塞赋值的仿真/综合问题
  20. 【QPSK中频】基于FPGA的QPSK中频信号产生模块verilog设计

热门文章

  1. 淘宝卖家编辑宝贝时如何添加可以直接点击的链接
  2. InflateRect
  3. 我在b站过考试周:计算机类期末救急网课汇总
  4. (六) Linux的权限管理操作详细学习笔记
  5. 拉姆.查兰管理实践奖2018:新经济的“瞻前顾后”
  6. 面包房算法-时钟和分布式系统中事件的顺序
  7. 猿创征文|AnimeGANv2 照片动漫化:如何基于 PyTorch 和神经网络给 GirlFriend 制作漫画风头像?
  8. 【物联网】二维码——简要介绍
  9. HttpUtils http请求工具类
  10. Hbuilder真机运行显示空白的问题