字段含有逗號(hào)分隔的,如何把這條記錄按分隔符分成多條記錄

-- 字段含有逗號(hào)分隔的,如何把這條記錄按分隔符分成多條記錄;
CREATE TABLE T_TST_INFO
(
   PERSON_ID NUMBER,
   PERSON_NAME VARCHAR(20),
   TYPE_ID VARCHAR(200)
);


INSERT INTO T_TST_INFO
  SELECT 1, '張三', '1,2' FROM DUAL
  UNION ALL
  SELECT 2, '李四', '1' FROM DUAL 

SELECT * FROM T_TST_INFO  


SELECT PERSON_ID,
       PERSON_NAME,
       REGEXP_SUBSTR(TYPE_ID, '[^,]+', 1, LEVEL) TYPE_ID
  FROM T_TST_INFO
CONNECT BY LEVEL <= REGEXP_COUNT(TYPE_ID, ',') + 1
       AND PERSON_ID = PRIOR PERSON_ID
       AND PRIOR DBMS_RANDOM.VALUE IS NOT NULL;  

-- AND PRIOR DBMS_RANDOM.VALUE IS NOT NULL
-- 避免CONNECT BY 遞歸循環(huán);       
       

SELECT DISTINCT PERSON_ID,
                PERSON_NAME,
                LEVEL,
                REGEXP_SUBSTR(TYPE_ID, '[^,]+', 1, LEVEL) TYPE_ID
  FROM T_TST_INFO
CONNECT BY LEVEL <= REGEXP_COUNT(TYPE_ID, ',') + 1;
-- 0201.單科明細(xì)表客觀題計(jì)算;

-- 原始表
/*SELECT * FROM T_SCN_RCG_OMR
WHERE T_SCN_RCG_OMR.EXAM_COURSE_ID = '3208075F3F8A4BD19032B41331A1C133'
AND T_SCN_RCG_OMR.TEST_NO = '1610603';*/


-- 得到5列:EXAM_COURSE_ID,TEST_NO,QUESTIONS_ID,QUESTIONS_NAME,ANSWERS

SELECT 
    M1.EXAM_COURSE_ID
    ,M1.TEST_NO
    ,M2.QUESTIONS_ID
    ,M2.QUESTIONS_NAME
    ,M2.ANSWERS
   FROM (
SELECT T_SCN_RCG_OMR.TEST_NO,
       T_SCN_RCG_OMR.EXAM_COURSE_ID,
       LEVEL ROW_INDEX,
       REGEXP_SUBSTR(SCORE_DETAIL, '[^,]+', 1, LEVEL) SCORE_DETAIL
  FROM T_SCN_RCG_OMR
    WHERE T_SCN_RCG_OMR.TEST_NO = '1610615'
CONNECT BY LEVEL <= REGEXP_COUNT(SCORE_DETAIL, ',') + 1
       AND TEST_NO = PRIOR TEST_NO
       AND PRIOR DBMS_RANDOM.VALUE IS NOT NULL ) M1 
       
LEFT JOIN (

SELECT 
      T2.EXAM_COURSE_ID
      ,T2.QUESTIONS_ID
      ,T2.QUESTIONS_NAME
      ,T2.SERIAL_NO
      ,T2.ANSWERS
      ,ROW_NUMBER() OVER(PARTITION BY EXAM_COURSE_ID ORDER BY SERIAL_NO ASC) ROW_INDEX 
 FROM T_TPL_OBJECTIVE_QUESTIONS T2 
WHERE T2.EXAM_COURSE_ID = '3208075F3F8A4BD19032B41331A1C133' ) M2 
   ON M1.EXAM_COURSE_ID = M2.EXAM_COURSE_ID AND M1.ROW_INDEX = M2.ROW_INDEX
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容