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 40089 게시물 읽기
No. 40089
[질문] 쿼리 문의
작성자
박원(imtough)
작성일
2013-04-05 13:05
조회수
6,703
테이블 A
select '1111' idx, 'won' myname  from dual union
select '2222' idx, 'two' myname  from dual 
 
테이블 B
select '1111' idx, 'a' sel, 'a11' code from dual union
select '1111' idx, 'a' sel, 'a22' code from dual union
select '1111' idx, 'b' sel, 'a99' code from dual union
select '2222' idx, 'a' sel, 'a22' code from dual union
select '2222' idx, 'a' sel, 'a99' code from dual
 
원하는 결과 
select '1111' idx, 'won' myname, 'a11, a22' selA, 'a99' selB from dual union
select '2222' idx, 'two' myname, 'a22, a99' selA, '' selB from dual 
 
 
테이블 A 와 테이블 B를 조합하여 위와 같은 결과를 보고 싶은 경우 쿼리를 어떻게 해야 될까요 ?
 
테이블 A에서 idx 를 키로 하여 테이블 B와 조합을 하는데 내부적으로 sel 이라는 값을 가지고 selA, selB라는 필드를 만들어서 병합하는 형태로 처리 하려고 하는데
 
단순 조회를 하는 저로써는 뭘 써야 하는지 잘 몰라 문의 드립니다.
이 글에 대한 댓글이 총 2건 있습니다.

select a.idx, a.myname, b.selA, b.selB
from (
  select '1111' idx, 'won' myname  from dual union
  select '2222' idx, 'two' myname  from dual
) a
join (
  select idx
         ,max(case when sel='a' then code
               else ''
          end) selA
          ,max(case when sel='b' then code
               else ''
          end) selB
  from (       
    select idx, sel, wm_concat(code) code
    from (
      select '1111' idx, 'a' sel, 'a11' code from dual union
      select '1111' idx, 'a' sel, 'a22' code from dual union
      select '1111' idx, 'b' sel, 'a99' code from dual union
      select '2222' idx, 'a' sel, 'a22' code from dual union
      select '2222' idx, 'a' sel, 'a99' code from dual
    ) g
    group by idx, sel
  ) t
  group by idx
) b on (b.idx=a.idx) 

 

11g 버전 이후면 wm_concat 대신 ListAgg(code, ',') within group(order by code)

이런식으로 써도 됩니다.

박인호(paerae)님이 2013-04-05 14:01에 작성한 댓글입니다.

 감사 합니다. 잘 되네여 ^^

주말에는 비온다던데 집에서 오라클 관련 PDF하나 구해서 스터디좀 해야 겠네요 

박원(imtough)님이 2013-04-05 16:26에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
40093DB연결이 자주 끊기는 현상
한상원
2013-04-10
7025
40092파티셔닝 테이블에서 index_desc 처리 [2]
김지호
2013-04-09
6529
40091sqlplus 계정 <VIEW.sql 실행 시 [1]
소태섭
2013-04-05
6239
40089[질문] 쿼리 문의 [2]
박원
2013-04-05
6703
40086특정문자로 시작하는지 판단 [2]
이민우
2013-04-04
5935
40085테이블 반환 함수 어떻게 선언하고 어떻게 사용하는지 모르겠어요 [1]
오석균
2013-04-04
6660
40084프로시져에서 변수에 컬럼의 사이즈를 받을수 있나요??? [2]
한동훈
2013-04-03
5362
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.027초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다