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 34953 게시물 읽기
No. 34953
SQL 질문 하나 드릴께요^^;
작성자
한희성(hhsgood)
작성일
2008-12-13 14:54
조회수
2,661

테이블에 값이


  aa     bb

------------

   a       f

   b      g

   c      h

   d      i


위처럼 저장되어 있는데


제가 원하는 값은


 aa    bb   cc  dd

-----------------

  a      f      b    g

  c      h     d    i

이런식으로 값을 취할려고 합니다.


어떤식으로 쿼리를 짜야 할까요??도움 부탁드립니다.

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

이렇게 하면 될 듯 ...

/* Formatted on 2008/12/13 16:17 (Formatter Plus v4.8.8) */
SELECT   CEIL (NO / 4) c0,
         MAX (DECODE (MOD (ROWNUM, 4), 1, aa, NULL)) c1,
         MAX (DECODE (MOD (ROWNUM, 4), 1, bb, NULL)) c2,
         MAX (DECODE (MOD (ROWNUM, 4), 2, aa, NULL)) c3,
         MAX (DECODE (MOD (ROWNUM, 4), 2, bb, NULL)) c4,
         MAX (DECODE (MOD (ROWNUM, 4), 3, aa, NULL)) c5,
         MAX (DECODE (MOD (ROWNUM, 4), 3, bb, NULL)) c6,
         MAX (DECODE (MOD (ROWNUM, 4), 0, aa, NULL)) c7,
         MAX (DECODE (MOD (ROWNUM, 4), 0, bb, NULL)) c8
FROM     (SELECT ROWNUM NO,
                 aa,
                 bb
          FROM   테이블명)
WHERE    aa IS NOT NULL
GROUP BY CEIL (NO / 4)
ORDER BY c0;
석훈님이 2008-12-13 16:14에 작성한 댓글입니다.
이 댓글은 2008-12-15 18:32에 마지막으로 수정되었습니다. Edit

자답입니다.

생각보다 간단했네요..

select a.aa,a.bb,b.aa,b.bb 
  from (select rownum as num, aa, bb from table_name where aa in ('a','c'))a,
         (select rownum as num, aa, bb from table_name where aa in ('b','d'))b
  where a.num = b.num

한희성(hhsgood)님이 2008-12-13 19:16에 작성한 댓글입니다.
select aa
       , bb
       , case when Mod(rownum, 4) = 2 then aa 
                 when Mod(rownum, 4) = 0 then aa
                 else null
          end as cc
        , case when Mod(rownum, 4) = 2 then bb
                  when Mod(rownum, 4) = 0 then bb
                  else null
          end as dd
  from t;
배고파(hiteman100)님이 2008-12-15 12:32에 작성한 댓글입니다.
with tmp as (
select 'a' aa, 'f' bb from dual union all
select 'b' aa, 'g' bb from dual union all
select 'c' aa, 'h' bb from dual union all
select 'd' aa, 'i' bb from dual
)
select min (decode ( mod(rownum,2),1,aa)) aa,
       min (decode ( mod(rownum,2),1,bb)) bb,
    min (decode ( mod(rownum,2),0,aa)) cc,
       min (decode ( mod(rownum,2),0,bb)) dd
  from tmp
  group by ceil(rownum/2)
김기현(dndnddl)님이 2008-12-17 10:39에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
34957여러개의 칼럼을 하나의 primary key로 지정하고 싶은데요. [4]
유재훈
2008-12-14
2608
34956전년대비를 어떻게 구해야할까요? [1]
궁금이
2008-12-14
2188
34955[질문] 중대용량 테이블 설계 및 LIKE 쿼리 튜닝 [3]
삼류
2008-12-14
3579
34953SQL 질문 하나 드릴께요^^; [4]
한희성
2008-12-13
2661
34952저장 프로시저에 Select ... For Update를 사용하려면... [3]
lock초보
2008-12-13
3405
34951저장 프로시저의 OUT 파라미터에 대해서 궁금한 점이 있습니다. 조언바랍니다. [2]
sp초보
2008-12-13
9391
34950테이블생성을 했는데.. [1]
홍두표
2008-12-12
2565
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다