2개의 값이뜰때 하나만 뜨도록 하고싶습니다. 0 3 1,892

by 여비몬 [Oracle 기초] [2015.02.05 15:56:46]


오라클.png (1,860Bytes)

안녕하세요

distinct로 중복값을 제거 후 select를 했습니다.

다른 컬럼들의 데이터는 같은데 마지막 컬럼하나가 710과 711때문에 결과값이 두가지가나올때

결과값을 한개만 띄우기위해 하나의 값을 변환한다던가 그렇게 할수있을까요...?

감사합니다.

by lovekod2hj [2015.02.05 16:07:28]

일반적으로 group by 또는 windows 함수를 이용해서 처리가 가능합니다만

지금 같은 경우는 sl_cd의 어떤 값을 써야 하는지가 정해져야 정확하게 답을 드리겠네요.


 


by lovekod2hj [2015.02.05 16:11:33]
WITH TMP AS (
    SELECT '이수진' AS supy_nm, '710' as sl_cd from dual union all
    SELECT '이수진' AS supy_nm, '711' as sl_cd from dual 
)

select supy_nm, max(sl_cd) as sl_cd
  from tmp
 group by supy_nm
;


WITH TMP AS (
    SELECT '이수진' AS supy_nm, '710' as sl_cd from dual union all
    SELECT '이수진' AS supy_nm, '711' as sl_cd from dual 
)

select supy_nm, sl_cd
  from (
        select supy_nm, sl_cd, row_number() over (partition by supy_nm order by sl_cd desc) as rnum
        from tmp
        )
 where rnum = 1
;

 


by 여비몬 [2015.02.05 17:23:03]

정말 감사드립니다^^ 굿데이되세요!

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