PublicDoc/sql/split.md
2024-09-05 16:29:54 +08:00

729 B
Raw Permalink Blame History

查询JK_CRB_ICD10表将icd10列按照、分割并将name和icd10联合组成新行插入JK_CRB_ICD10_tmp表。

insert into JK_CRB_ICD10_tmp
select * from (
  SELECT name,
         TRIM(SUBSTR(string_to_split,
                     INSTR(string_to_split, '、', 1, LEVEL) + 1,
                     INSTR(string_to_split, '、', 1, LEVEL + 1) - INSTR(string_to_split, '、', 1, LEVEL) - 1)
         ) AS icd10
  FROM (SELECT name, '、' || icd10 || '、' AS string_to_split FROM JK_CRB_ICD10) t,
       DUAL
  CONNECT BY PRIOR name = name
  AND PRIOR DBMS_RANDOM.value IS NOT NULL
  AND LEVEL <= LENGTH(t.string_to_split) - LENGTH(REPLACE(t.string_to_split, '、', '')) + 1
) ina where ina.icd10 is not null;