数据库(oracle)sql问题

有这样的数据 被逗号分隔 怎么让他变为三条数据 oracle数据库

图片说明

使用split()分隔函数

取数据照常取,取完之后根据逗号截取字符串,循环出来

使用正则表达式:
select regexp_substr('是,否,未检查', '[^,]+', 1, level)
from dual
connect by level <= length('是,否,未检查') -
length(REPLACE('是,否,未检查', ',', '')) + 1;

用pl/sql写声明遍历循环插入,删除

https://blog.csdn.net/u010999240/article/details/45652547

第一种方式:
with t as

(select 'i;am;a;test;hahahhah' as str from dual)

select level,

str,

regexp_substr(t.str, '[^;]+', 1, level) str_single

from t

connect by level <= length(t.str) - length(replace(t.str, ';', '')) + 1;

第二种方式:可以自己创建一张表测试
DECLARE _
TYPE t_table IS TABLE OF VARCHAR2(30) INDEX BY BINARY_INTEGER;
v_table t_table;
v_cnt NUMBER; _
BEGIN
for nm in (select name from t_cs1) loop
v_cnt := length(nm.name)-length(replace(nm.name,';',''))+1;
FOR a IN 1 .. v_cnt LOOP _
dbms_output.put_line(regexp_substr(nm.name,'[^;]+',1,a));
END LOOP;
end loop;
_END;
__