Background Image
조회 수 10921 추천 수 0 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

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

한 Row에 들어 있는 값을 여러 Row로 쿼리문 만들기

1) 한 Row의 구분자가 ','로 되어 있는 경우

2) ','개수 Row + 1개의 Row의 갯수 쿼리문 만들기


CREATE TABLE tb_list(idx integer not null primary key,
                         code_id varchar2(10),
                         code varchar2(100));
insert into tb_list(idx, code_id, code) values(1, '1012111300', '3,2,3,4,1,1,1,2,3,4,,4,2,3,1,2,4,1,2,1,3,4,3,2,2,3,2,3,4,1,1,1,2,3,4,,4,2,3,1');
CREATE TABLE tb_cnt(cnt_no INTEGER NOT NULL PRIMARY key);
INSERT INTO tb_cnt(cnt_no)
values(1) ,(2)       ,(3)       ,(4)       ,(5)       ,(6)       ,(7)       ,(8)       ,(9)       ,(10)      ,(11)      ,(12)      ,(13)      ,(14)      ,(15)    
,(16)      ,(17)      ,(18)      ,(19)      ,(20)      ,(21)      ,(22)      ,(23)      ,(24)      ,(25)      ,(26)      ,(27)      ,(28)      ,(29)      ,(30)    
,(31)      ,(32)      ,(33)      ,(34)      ,(35)      ,(36)      ,(37)      ,(38)      ,(39)      ,(40)   
;


4) 쿼리문
SELECT a.idx, a.code_id
         , REPLACE(substring_index(a.code,',',b.cnt_no), SUBSTRING_INDEX(a.code,',',b.cnt_no-1)||',','') AS answer
FROM (       
SELECT idx
         , code_id
         , code
FROM t_list ) a, tb_cnt b
WHERE code_id = '1012111300'
      AND b.cnt_no <= LENGTH(a.code) - LENGTH(REPLACE(a.code, ',','')) +1

  • ?
    성진 2016.12.10 00:17 Files첨부 (1)
    위에는 오라클 예제이고

    CUBRID 예제는 다음과 같습니다. 또한 추가 조인이 필요 없게 만들었습니다.

    SELECT

        code,

        LEVEL,

        REPLACE(REPLACE(SUBSTRING_INDEX(code,',',LEVEL), SUBSTRING_INDEX(code,',',LEVEL -1),''),',','') code_split

    FROM (SELECT '3,2,3,4,1,1,1,2,3,4,,4,2,3,1,2,4,1,2,1,3,4,3,2,2,3,2,3,4,1,1,1,2,3,4,,4,2,3,1' AS code) Z

    CONNECT BY LEVEL <= LENGTH(code) - LENGTH(REPLACE(code,',','')) - 1;



    split.png


  1. windows 환경에서 압축파일로 CUBRID 설치시 환경변수 쉽게 설정하기

  2. CUBRID dummy data생성-간단편

  3. CUBRID HA에서 사용하는 포트 확인 방법(1523, 59901)

  4. 카디시안(한 Row를 여러 Row) 쿼리문 만들기

  5. 32bit JRE 환경에서 64bit CUBRID Tool 사용

  6. CUBRID Manager 및 엑셀 파일을 이용하여 데이터 입력 시, garbage값이 포함되어 저장되는 경우 해결 방법

  7. SQL튜닝 - 인덱스 활용 사례

  8. JAVA SP 사용 시 로그 처리 방법

  9. 디비와 테이블 문자셋이 다른 경우 처리 방법

  10. A테이블의 다수의 컬럼을 B테이블로 UPDATE 하는 SQL

  11. 전체 레코드 개수 확인하는 SP

  12. MERGE INTO 사용 예제 ( INSERT, UPDATE문을 1개의 쿼리로 실행 )

  13. 워크스페이스 사용중입니다. 다른 워크스페이스를 선택하세요. 대응법

  14. CUBRID Manager 메모리 설정하기(cubridmanager.ini)

  15. CUBRID HA와 Primary key 제약조건

  16. 테이블 사용량 확인방법

  17. cubrid manager server 구동 시 no "events" section in configuration 오류 발생

  18. 9.2 버전에서 복제 재구축(ha_make_slavedb.sh) 스크립트를 사용하려면 수정해야 할 부분

  19. CUBRID vs MySQL vs ORACLE SQL 타입별 비교

  20. 오류데이타검증 - 숫자 이외의 데이타 확인하는 방법

Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 14 Next
/ 14

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales