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 39533 게시물 읽기
No. 39533
세로를 가로로 바꾸기
작성자
초보
작성일
2012-07-09 19:34ⓒ
2012-07-09 19:37ⓜ
조회수
7,326

안녕하세요.

예제가 많아서 보기는 했는데 막상 적용하려니까 깜깜합니다.

데이터가 아래와 같습니다. CODE는 늘어날수 있습니다. 꼭 (A001..B001이렇게 순차적인 데이터는 아닙니다. 고정값이 아닙니다.)

CODE AMT
A001 10
B001 20
C001 15

위 데이터를

CODE A001 B001 C001
AMT 10 20 15

이렇게 바꾸고 싶습니다.

어떻게 해야할까요?

도움부탁드립니다.

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

가변적인 열에 대한 처리는 Sql만으로는 불가합니다.
일단 고정값에 대한 행열변환쿼리는 다음과 같습니다.
SELECT 'AMT' code
     , MIN(DECODE(code, 'A001', amt)) A001
     , MIN(DECODE(code, 'B001', amt)) B001
     , MIN(DECODE(code, 'C001', amt)) C001
  FROM t
;


대안 1) 가변적인 열의 갯수가 한정적이라면
- 최대 표현 갯수를 정해 놓고 고정적으로 표현하기


대안 2) 하나의 열에 몰아 넣기
- xmlagg, wm_concat, listagg


대안 3) 동적 쿼리를 사용하기
- 프로시져로 쿼리를 동적으로 구성하여 실행시켜 커서형태로 반환하기

마농(manon94)님이 2012-07-11 17:06에 작성한 댓글입니다.
이 댓글은 2012-07-11 17:07에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
39536SQL 쿼리 질문입니다(마농님 좀 도와주세요 ㅠ) [1]
김병두
2012-07-11
5106
39535group by rollup 했더니 같은 row가 2개씩 생겨요.. [2]
하수
2012-07-10
5909
39534그룹내의 첫번째 row를 구하고 싶습니다. [1]
신동화
2012-07-10
10056
39533세로를 가로로 바꾸기 [1]
초보
2012-07-09
7326
39532각 필드의 행으로 나온 결과 값을 열로 나열 하는 방법 [1]
하승환
2012-07-09
5147
39531한 텍스트에 같이 출현하는 문자열 쌍의 갯수 구하는 방법.. [2]
fly_sky
2012-07-09
4531
39528windows server 2008 - Visual Basic - oracle10g [1]
나진산
2012-07-09
4442
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다