오라클 selcte 문 질문이요. 0 4 471

by ekekekek [Oracle 기초] [2020.09.14 11:20:02]


안녕하세요. 오라클에서 select 문을 공부하다 막히는 부분이 있어서 글을 쓰게됬습니다.

현재 테이블 구조가 아래와 같이 되어있습니다.

FLAG 값에 따라 조회를 하고 싶은데

FLAG 가 I이거나 U 인 데이터를 조회할때  KEYNO가 같은 컬럼은 U데이터만 조회 하고 싶은데 어떤식으로 조회하면 될까요?

 

keyno column_b column_c flag
60 35 40 I
60 50 60 U
62 70 80 I
63 40 50 D

 

by pajama [2020.09.14 11:55:59]

flag가 'I', 'U', 'D'만 있다면 order by로 가능할 듯 하네요.

with t as (
select 60 keyno, 35 column_b, 40 column_c, 'I' flag from dual
union all select 60, 50, 60, 'U' from dual
union all select 62, 70, 80, 'I' from dual
union all select 63, 40, 50, 'D' from dual
)
select * 
from (select keyno, column_b, column_c, flag, row_number() over ( partition by keyno order by flag desc) rn from t)
where rn = 1

 


by ekekekek [2020.09.15 15:40:36]

감사합니다 한번 적용해서 활용해보겠습니다.


by 마농 [2020.09.14 12:06:41]

질문이 모호합니다.
D 자료에 대한 설명이 없네요.
I, U, D 가 같이 있으면 결과가 어떻게 나와야 할까요?


by ekekekek [2020.09.15 15:40:05]

설명을 누락하고 적어드렸네요.

'D'값은 삭제된 플래그 값으로 제외된 채로 조회를 할생각입니다.

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