5개씩 나누고 싶습니다. 0 2 514

by 도련 [SQL Query] data 컬럼별로 나누기 [2020.11.23 14:35:08]


안녕하세요?

 

컬럼하나의 결과를 두컬럼으로 나누고 싶습니다. 나누는 기준은 5개씩 자르고 싶습니다. (넘치거나 부족해도 두컬럼으로만 나누어 담고싶습니다.)

 

SELECT '1X 2X 3X 4X 5X 6X 7X 8X 9X 10X 11X 12X 13X 14X 15X 16X' AS COL1 FROM DUAL;
결과 =>  
컬럼1 컬럼2
1X 2X 3X 4X 5X 6X 7X 8X 9X 10X
   
SELECT '1X 2X 3X 4X 5X 6X 7X 8X 9X' AS COL1 FROM DUAL;
결과 =>  
컬럼1 컬럼2
1X 2X 3X 4X 5X 6X 7X 8X 9X
   
SELECT '1X 2X 3X' AS COL1 FROM DUAL;
결과 =>  
컬럼1 컬럼2
1X 2X 3X  
by 마농 [2020.11.23 15:13:47]
WITH t AS
(
SELECT '1X 2X 3X 4X 5X 6X 7X 8X 9X 10X 11X 12X 13X 14X 15X 16X' col1 FROM dual
UNION ALL SELECT '1X 2X 3X 4X 5X 6X 7X 8X 9X 10X' FROM dual
UNION ALL SELECT '1X 2X 3X 4X 5X 6X 7X 8X 9X' FROM dual
UNION ALL SELECT '1X 2X 3X' FROM dual
UNION ALL SELECT '1X' FROM dual
)
SELECT col1
     , SUBSTR(col1,      1, v1      - 1) x1
     , SUBSTR(col1, v1 + 1, v2 - v1 - 1) x2
  FROM (SELECT col1
             , INSTR(col1||'          ', ' ', 1,  5) v1
             , INSTR(col1||'          ', ' ', 1, 10) v2
          FROM t
        )
;

보여주신 자료가 원본이 아닌 가공된 결과라면?
(원본 > 1차가공 > 2차가공 > 결과) 형태로. 가공된걸 또 가공하는 2차 가공방식을 생각하기 보다는.
(원본 > 직접가공 > 결과) 형태로. 직접 추출하는 새로운 방법을 찾는 것이 더 효율적일 수 있습니다.


by 도련 [2020.11.23 16:10:02]

감사합니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입