[오라클] 다중조건

Nux·2022년 10월 5일
0

전제

  • 1:N 관계
    테이블1: 학년
    테이블2: 반

  • 반 테이블 내에 학생들 정보가 담겨있는 데이터가 있음

  • 이 학생 컬럼 중 성별이 남자인 값만 뽑고 싶음

풀이

  • 우선 값이 더 많은 쪽의 OUTERJOIN으로 테이블을 합침(1:N관계)

outerjoin 이용

SELECT *
FROM GRADE G
	LEFT OUTERJOIN CLASS C ON (G.GRADE=C.GRADE AND C.GENDER='MALE' )

case, when 이용

SELECT *
FROM GRADE G
	LEFT OUTERJOIN CLASS C ON G.GRADE=C.GRADE
WHERE 'Y' = CASE WHEN C.GENDER='MALE' THEN 'Y'
  • 이 외에도 약자(abbreviation)나 번호로 되어 있는 값을 STRING으로 풀어서 출력한다거나 할 때 사용됨

응용

SELECT G.GRADE
	, C.GENDER...
	, CASE C.STATUS='ETC' THEN C.MEMO 
FROM GRADE G
	LEFT OUTERJOIN CLASS C ON G.GRADE=C.GRADE
  • STATUS가 'ETC'이면 MEMO의 값을 출력함

0개의 댓글