메뉴 건너뛰기

?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

1. 단일행을 다중 row로 분리

오라클에서 '1,2,3,4,5'라는 문자열을 레코드로 만들려면 어떻게해야 할까?

'1,2,3,4,5'

return
===========
1
2
3
4
5

즉, 결과가 위와같이 나오게 하려면?
connect by를 사용해서 만들수가 있다.

SELECT SUBSTR (str,
                INSTR (str, ',', 1, LEVEL) + 1,
                INSTR (str, ',', 1, LEVEL + 1) - INSTR (str, ',', 1, LEVEL) - 1
                ) sub
  FROM (SELECT ',' || '1,2,3,4,5' || ',' str FROM DUAL)
CONNECT BY LEVEL <= LENGTH (str) - LENGTH (REPLACE (str, ',')) - 1


위와 같이 connect by의 level을 사용해서 구현할 수 있다.
 

2. 다중 row 결과를 단일행으로 연결

이번엔 반대로 해보자.

1
2
3
4
5

return
===========
'1,2,3,4,5'

즉, 이렇게 나오게 하려면 다음과 같이 해보자.

SELECT SUBSTR (MAX (SYS_CONNECT_BY_PATH (str, ',')), 2) path# 
  FROM (
                SELECT str,
                            ROWNUM rnum
                   FROM (
                                SELECT 1 str FROM dual
                                UNION
                                SELECT 2 str FROM dual
                                UNION
                                SELECT 3 str FROM dual
                                UNION
                                SELECT 4 str FROM dual
                                UNION
                                SELECT 5 str FROM dual
                            )
           ) 
START WITH rnum = 1 
CONNECT BY PRIOR rnum = rnum - 1

테이블을 이용해서 같은 결과를 뽑아내려면 다음과 같이 해보자.

SELECT SUBSTR (MAX (SYS_CONNECT_BY_PATH (ename, ',')), 2) path# 
  FROM (
                SELECT ename, ROWNUM rnum 
                       FROM emp
           ) 
START WITH rnum = 1 
CONNECT BY PRIOR rnum = rnum - 1

  1. 스키마 조회 쿼리 모음

    Date2016.09.12 Views10036
    Read More
  2. 숫자를 문자로 변환 시 소수점 처리 (TO_CHAR, FM)

    Date2016.12.08 Views15026
    Read More
  3. 숫자 체크 방법 (IS_NUMBER, IS_NUMERIC)

    Date2016.12.08 Views23119
    Read More
  4. 동적쿼리(Dynamic SQL) 사용법 (텍스트 쿼리)

    Date2016.12.08 Views15036
    Read More
  5. 데이터의 암호화 및 복호화

    Date2016.12.08 Views13237
    Read More
  6. 데이터베이스 백업하기 ( import : 가져오기 , export : 내보내기 )

    Date2016.12.08 Views9878
    Read More
  7. 단일행을 다중 row로 분리, 다중 row 결과를 단일행으로 연결하는 방법

    Date2016.08.29 Views9382
    Read More
  8. 다른 버전의 오라클 import, export 하기

    Date2016.09.12 Views9475
    Read More
  9. 날짜관련 계산하기(1)

    Date2016.12.08 Views8090
    Read More
  10. 기간내 모든 날자(일자) 구하기

    Date2016.12.08 Views7358
    Read More
  11. 구분자로 자르기 (Split)

    Date2016.12.08 Views20563
    Read More
  12. 관리자( SYSTEM, SYS) 계정 비밀번호를 잊어버렸을때..

    Date2016.12.08 Views8336
    Read More
  13. 계층형 쿼리의 응용 - 답변형 계시판

    Date2016.12.08 Views8752
    Read More
  14. 계층형 쿼리의 응용 - 달력만들기

    Date2016.12.08 Views8528
    Read More
  15. 간단한 쿼리로 일련번호 쉽게 넣기 - ROWNUM 사용

    Date2016.08.29 Views9472
    Read More
  16. [Oracle|오라클] 한글 초성 검색 함수

    Date2016.12.08 Views9087
    Read More
  17. [Oracle] 테이블 스페이스 및 사용자 계정 생성 방법

    Date2016.12.08 Views8572
    Read More
  18. [Oracle] Rownum을 이용한 페이징 처리

    Date2016.12.08 Views10385
    Read More
  19. [Oracle] DB Export, Import 방법

    Date2016.12.08 Views12607
    Read More
  20. [Oracle SQL] 여러 행(ROW)을 하나의 컬럼(COLUMN)으로 합치기 (WM_CONCAT)

    Date2016.12.08 Views20008
    Read More
Board Pagination Prev 1 2 3 4 5 6 7 Next
/ 7

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved