[오라클]2개의 행을 1개의 행으로 변환하고 싶습니다. (수정입니다.) 0 2 1,030

by 곤 [SQL Query] 행변환 [2021.02.03 10:38:44]


MEM CHK
new_mem N
old_mem Y

위의 형태의 결과를

new_mem old_mem
N Y

위 형태의 단일 레코드로 만들고 싶습니다. 불가피하면 flag를 만들어 하나의 행으로 만들어도 됩니다.

 결론은 2개의 행을 하나의 레코드로 만들고 싶습니다. 도와주세요 ㅜ

dbms는 오라클 사용하고 있습니다!

by pajama [2021.02.03 12:03:38]

이런식으로 될까요?

with t as (
select 'new_mem' MEM, 'N' CHK from dual union all
select 'old_mem' , 'Y' from dual
)
select max(decode(mem,'new_mem',chk)) new_mem, max(decode(mem,'old_mem',chk)) old_mem from t

 


by 마농 [2021.02.03 14:17:03]
SELECT MIN(DECODE(mem, 'new_mem', chk)) new_mem
     , MIN(DECODE(mem, 'old_mem', chk)) old_mem
  FROM t
;

SELECT *
  FROM t
 PIVOT (MIN(chk) FOR mem IN ('new_mem' new_mem, 'old_mem' old_mem))
;

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입