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 40458 게시물 읽기
No. 40458
쿼리 피봇문의드립니다.
작성자
김진
작성일
2014-05-16 11:00
조회수
6,449

WITH T

AS (

SELECT 'KKK' AS ID, 10 POINT, '005' AS GRP1, '2012' AS GB FROM DUAL

UNION ALL

SELECT 'KKK' AS ID, 30 POINT, '003' AS GRP1, '2013' AS GB FROM DUAL

UNION ALL

SELECT 'KKK' AS ID, 20 POINT, '001' AS GRP1, '2013' AS GB FROM DUAL

UNION ALL

SELECT 'KKK' AS ID, 15 POINT, '007' AS GRP1, '2014' AS GB FROM DUAL

UNION ALL

SELECT 'KKK' AS ID, 40 POINT, '007' AS GRP1, '2014' AS GB FROM DUAL

)

SELECT ID,

DECODE(GB, '2012', GRP1) AS GRP12,

DECODE(GB, '2012', POINT) AS POINT12,

DECODE(GB, '2013', GRP1) AS GRP13,

DECODE(GB, '2013', POINT)AS POINT13,

DECODE(GB, '2014', GRP1)AS GRP14,

DECODE(GB, '2014', POINT)AS POINT14

FROM T;

이렇게 하면 중간에 공백이 생깁니다. 숫자같으면 SUM을 쓰고 문자를 하나만 보여주면 MIN이나 MAX를 사용하면되는데

이건 모든 열을 다보여줘야되서..

공백을 없을수 있는 방법이 있을까요???

쿼릴 돌려보시면 현재 5개로우인데

로우가 2개만 나오면 되거든요..

 

오라클 11의 PIVOT기능을 사용하지 않고 DECODE등으로 할방법이 있을까요?

 

 

이 글에 대한 댓글이 총 1건 있습니다.

SELECT id
     , MIN(DECODE(gb, '2012', grp1 ))   grp2012
     , MIN(DECODE(gb, '2012', point)) point2012
     , MIN(DECODE(gb, '2013', grp1 ))   grp2013
     , MIN(DECODE(gb, '2013', point)) point2013
     , MIN(DECODE(gb, '2014', grp1 ))   grp2014
     , MIN(DECODE(gb, '2014', point)) point2014
  FROM (SELECT id, point, grp1, gb
             , ROW_NUMBER() OVER(PARTITION BY id, gb ORDER BY 1) rn
          FROM t
        )
 GROUP BY id, rn
 ORDER BY id, rn
;

마농(manon94)님이 2014-05-19 11:16에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
40461숫자 패턴 검색하여 변경 [4]
새터니
2014-05-19
8035
40460쿼리 좀 질문 드립니다.
천인성
2014-05-19
6383
40459쿼리 좀 질문 드립니다.
선한양심
2014-05-16
6201
40458쿼리 피봇문의드립니다. [1]
김진
2014-05-16
6449
40457계층형 쿼리 표현 [2]
초보초보
2014-05-15
6983
40456세션킬과 listener의 관계
디비초보
2014-05-15
6755
40455sql결과 문의드립니다. [1]
궁금
2014-05-14
6676
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.021초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다