메뉴 건너뛰기

?

단축키

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. IMP-00010: 엑스포트 파일이 유효하지 않고, 헤더가 검증에 실패했습니다

    Date2016.12.08 Views8812
    Read More
  2. sqlplus에서 Ampersand나 특수 문자를 갖는 데이타를 insert하는 방법 sqlplus 데이터 insert 입력값 요구

    Date2016.12.08 Views8914
    Read More
  3. 시퀀스 초기화 프로시저

    Date2016.09.12 Views8925
    Read More
  4. 오라클 12c (Oracle) 에서 테스트를 위해 샘플 스키마 설치하기

    Date2016.08.30 Views8929
    Read More
  5. Oracle 에서 테이블과 리소스의 존재 여부를 알아보는 쿼리

    Date2016.08.30 Views8949
    Read More
  6. ORA-39142 덤프 버전이 틀려서 넣지 못할 때

    Date2016.12.08 Views8974
    Read More
  7. oracle 특수문자 입력시 Substitution Variable 변수치환을 없애는 방법

    Date2016.08.30 Views9026
    Read More
  8. [Oracle|오라클] 한글 초성 검색 함수

    Date2016.12.08 Views9090
    Read More
  9. Oracle에서 Foreign Key가 걸려있는 컬럼값 업데이트(update) 하기

    Date2016.08.29 Views9177
    Read More
  10. ORA-01652 128(으)로 테이블 공간 ***에서 임시 세그먼트를 확장할 수 없습니다.

    Date2016.12.08 Views9257
    Read More
  11. WHERE절에서 Null 값 비교하기

    Date2016.08.29 Views9354
    Read More
  12. PL/SQL에서 자바(Java) 클래스(Class), 함수 실행 방법

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

    Date2016.08.29 Views9403
    Read More
  14. 간단한 쿼리로 일련번호 쉽게 넣기 - ROWNUM 사용

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

    Date2016.09.12 Views9475
    Read More
  16. 조건절에 WHERE 1=1, WHERE 1=0 사용하여 쿼리 간편하게 사용하기

    Date2016.08.29 Views9621
    Read More
  17. oracle db 백업(full)

    Date2016.09.11 Views9663
    Read More
  18. 오라클11g DB 생성

    Date2016.12.08 Views9727
    Read More
  19. 오라클 백업 및 복구(Export, Import)

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

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

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

© k2s0o1d4e0s2i1g5n. All Rights Reserved