为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】: dm8
【操作系统】:
【CPU】:
【问题描述】*: 达梦一行通过逗号,分割为多行怎么实现
mysql 的如下
select
b.help_topic_id + 1 as id,
substring_index(substring_index(a.name, ',', b.help_topic_id + 1) ,',', -1) as name
from
test_split a join mysql.help_topic b
on
b.help_topic_id < LENGTH(a.name) - LENGTH(REPLACE(a.name,',','')) + 1;
--示例
drop table cs1_0;
create table cs1_0 (slid int ,bs varchar);
insert into cs1_0 values (2024,'1,2,3,48');commit;
select bs from cs1_0 where slid='2024';
select regexp_substr((select bs from cs1_0 where slid='2024'),'[^,]+',1,LEVEL,'i') as 分割后结果 from dual
connect by level <= length((select bs from cs1_0 where slid='2024'))-length(regexp_replace((select bs from cs1_0 where slid='2024'),',',''))+1;
实现方式类似,select id,regexp_substr(name1,'[^,]+',1,level) data
from test123
connect by prior id=id and level<=regexp_count(name1,',')+1 and prior dbms_random.value is not null;具体参考下方链接
https://eco.dameng.com/community/article/ea2b08d10963fdb4b9f77d25021dc2fa