This commit is contained in:
wintsa 2024-08-23 10:17:41 +08:00
parent 75b4c681dc
commit 5c62dc12e7

View File

@ -8,53 +8,60 @@ USING (
),
tmp2 AS (
SELECT id,
NVL2(glgc, '58505_gcxx' || REGEXP_SUBSTR(glgc, '[^,]+', 1, LEVEL), '') AS wysb
NVL2(glgc, '58505_gcxx' || SUBSTR(TO_CHAR(glgc), INSTR(TO_CHAR(glgc), ',', 1, LEVEL) + 1, INSTR(TO_CHAR(glgc), ',', 1, LEVEL + 1) - INSTR(TO_CHAR(glgc), ',', 1, LEVEL) - 1),'')
AS wysb
FROM tmp
CONNECT BY REGEXP_SUBSTR(glgc, '[^,]+', 1, LEVEL) IS NOT NULL
CONNECT BY LEVEL <= LENGTH(glgc) - LENGTH(REPLACE(glgc, ',', '')) + 1
AND PRIOR id = id
AND PRIOR DBMS_RANDOM.VALUE IS NOT NULL
UNION ALL
SELECT id,
NVL2(glgcxxsjd, '58505_tree' || REGEXP_SUBSTR(glgcxxsjd, '[^,]+', 1, LEVEL), '') AS wysb
NVL2(glgcxxsjd, '58505_tree' || SUBSTR(TO_CHAR(glgcxxsjd), INSTR(TO_CHAR(glgcxxsjd), ',', 1, LEVEL) + 1, INSTR(TO_CHAR(glgcxxsjd), ',', 1, LEVEL + 1) - INSTR(TO_CHAR(glgcxxsjd), ',', 1, LEVEL) - 1),'')
FROM tmp
CONNECT BY REGEXP_SUBSTR(glgcxxsjd, '[^,]+', 1, LEVEL) IS NOT NULL
CONNECT BY LEVEL <= LENGTH(glgcxxsjd) - LENGTH(REPLACE(glgcxxsjd, ',', '')) + 1
AND PRIOR id = id
AND PRIOR DBMS_RANDOM.VALUE IS NOT NULL
UNION ALL
SELECT id,
NVL2(glgcgc, '58505_gcgc' || REGEXP_SUBSTR(glgcgc, '[^,]+', 1, LEVEL), '') AS wysb
SELECT id,
NVL2(glgcxxsjd, '58505_gcgc' || SUBSTR(TO_CHAR(glgcgc), INSTR(TO_CHAR(glgcgc), ',', 1, LEVEL) + 1, INSTR(TO_CHAR(glgcgc), ',', 1, LEVEL + 1) - INSTR(TO_CHAR(glgcgc), ',', 1, LEVEL) - 1),'')
FROM tmp
CONNECT BY REGEXP_SUBSTR(glgcgc, '[^,]+', 1, LEVEL) IS NOT NULL
CONNECT BY LEVEL <= LENGTH(glgcgc) - LENGTH(REPLACE(glgcgc, ',', '')) + 1
AND PRIOR id = id
AND PRIOR DBMS_RANDOM.VALUE IS NOT NULL
UNION ALL
SELECT id,
NVL2(glzbgl, '58505_zb' || REGEXP_SUBSTR(glzbgl, '[^,]+', 1, LEVEL), '') AS wysb
SELECT id,
NVL2(glgcxxsjd, '58505_zb' || SUBSTR(TO_CHAR(glzbgl), INSTR(TO_CHAR(glzbgl), ',', 1, LEVEL) + 1, INSTR(TO_CHAR(glzbgl), ',', 1, LEVEL + 1) - INSTR(TO_CHAR(glzbgl), ',', 1, LEVEL) - 1),'')
FROM tmp
CONNECT BY REGEXP_SUBSTR(glzbgl, '[^,]+', 1, LEVEL) IS NOT NULL
CONNECT BY LEVEL <= LENGTH(glzbgl) - LENGTH(REPLACE(glzbgl, ',', '')) + 1
AND PRIOR id = id
AND PRIOR DBMS_RANDOM.VALUE IS NOT NULL
UNION ALL
SELECT id,
NVL2(glhtgl, '58505_ht' || REGEXP_SUBSTR(glhtgl, '[^,]+', 1, LEVEL), '') AS wysb
SELECT id,
NVL2(glgcxxsjd, '58505_ht' || SUBSTR(TO_CHAR(glhtgl), INSTR(TO_CHAR(glhtgl), ',', 1, LEVEL) + 1, INSTR(TO_CHAR(glhtgl), ',', 1, LEVEL + 1) - INSTR(TO_CHAR(glhtgl), ',', 1, LEVEL) - 1),'')
FROM tmp
CONNECT BY REGEXP_SUBSTR(glhtgl, '[^,]+', 1, LEVEL) IS NOT NULL
CONNECT BY LEVEL <= LENGTH(glhtgl) - LENGTH(REPLACE(glhtgl, ',', '')) + 1
AND PRIOR id = id
AND PRIOR DBMS_RANDOM.VALUE IS NOT NULL
UNION ALL
SELECT id,
NVL2(gltbgl, '58505_tb' || REGEXP_SUBSTR(gltbgl, '[^,]+', 1, LEVEL), '') AS wysb
SELECT id,
NVL2(glgcxxsjd, '58505_tb' || SUBSTR(TO_CHAR(gltbgl), INSTR(TO_CHAR(gltbgl), ',', 1, LEVEL) + 1, INSTR(TO_CHAR(gltbgl), ',', 1, LEVEL + 1) - INSTR(TO_CHAR(gltbgl), ',', 1, LEVEL) - 1),'')
FROM tmp
CONNECT BY REGEXP_SUBSTR(gltbgl, '[^,]+', 1, LEVEL) IS NOT NULL
CONNECT BY LEVEL <= LENGTH(gltbgl) - LENGTH(REPLACE(gltbgl, ',', '')) + 1
AND PRIOR id = id
AND PRIOR DBMS_RANDOM.VALUE IS NOT NULL
UNION ALL
SELECT id,
NVL2(glqtgl, '58505_qt' || REGEXP_SUBSTR(glqtgl, '[^,]+', 1, LEVEL), '') AS wysb
SELECT id,
NVL2(glgcxxsjd, '58505_qt' || SUBSTR(TO_CHAR(glqtgl), INSTR(TO_CHAR(glqtgl), ',', 1, LEVEL) + 1, INSTR(TO_CHAR(glqtgl), ',', 1, LEVEL + 1) - INSTR(TO_CHAR(glqtgl), ',', 1, LEVEL) - 1),'')
FROM tmp
CONNECT BY REGEXP_SUBSTR(glqtgl, '[^,]+', 1, LEVEL) IS NOT NULL
CONNECT BY LEVEL <= LENGTH(glqtgl) - LENGTH(REPLACE(glqtgl, ',', '')) + 1
AND PRIOR id = id
AND PRIOR DBMS_RANDOM.VALUE IS NOT NULL
),
tmp3 AS (
SELECT id,