database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 40080 게시물 읽기
No. 40080
split 관련 문의입니다 (칼럼 내용 split 후 각각 레코드로 insert)
작성자
푸하
작성일
2013-03-29 16:27
조회수
7,194

칼럼의 내용을 특정 문자( | )를 기준으로 split 한 후 각각을 레코드로 삽입하려고 합니다

 

--------------------------------------------------------------------

name              col1                   col2

--------------------------------------------------------------------

AAA         10|20|30                5|1|2|4

BBB            1|4                         4|5|0

 

위와같은 테이블이 있을 경우 아래와 같이 새로운 형태의 테이블로 변경하려고 합니다

여러 형태로 고민해봤는데, 잘 안나오네요 ㅠ

 

---------------------------------------------------------------------

name              val1                    val2

---------------------------------------------------------------------

AAA             col1                     10

AAA             col1                      20

AAA             col1                      30

AAA             col2                       5

AAA             col2                       1

......

BBB             col2                      5

BBB              col2                      0

 

도움을 부탁드립니다

이 글에 대한 댓글이 총 1건 있습니다.

 WITH t(name, col1, col2) AS(

SELECT 'AAA', '10|20|30', '5|1|2|4' FROM dual UNION ALL
SELECT 'BBB',      '1|4',   '4|5|0' FROM dual 
)
SELECT name
     , CASE WHEN acnt >= lv THEN 'col1' ELSE 'col2' END val1
     , REGEXP_SUBSTR(cols, '[^|]+', 1, lv) val2
  FROM (SELECT name, LTRIM(RTRIM(col1||'|'||col2, '|'), '|') cols
             , LENGTH(col1) - LENGTH(REPLACE(col1, '|')) + 1 acnt 
          FROM t
        ) t
     , (SELECT LEVEL lv FROM dual CONNECT BY LEVEL <= 20)
 WHERE LENGTH(cols) - LENGTH(REPLACE(cols, '|')) + 1 >= lv
 ORDER BY name, lv 
아린(arin76)님이 2013-03-29 17:18에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
40083문의 드립니다. 정렬 관련 [1]
새하정
2013-04-02
5625
40082oracle database 10g express 실행관련 질문좀 드릴게요 ㅜ
우종윤
2013-04-02
5710
40081실행계획이 이상하네요 ㅜㅜ;; [5]
하람
2013-04-01
5983
40080split 관련 문의입니다 (칼럼 내용 split 후 각각 레코드로 insert) [1]
푸하
2013-03-29
7194
40079그룹으로 묶을때 조언 부탁드립니다. [1]
이민우
2013-03-29
7352
40078날짜 파라메터 값을 통해서 데이터 출력 [4]
바램
2013-03-28
6803
400772가지 질문..ㅠ [4]
임서희
2013-03-28
6333
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.022초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다