JAVAIARY

Oracle) NVL, UNION, OUTERJOIN표현식 본문

lectureNote/SQL

Oracle) NVL, UNION, OUTERJOIN표현식

shiherlis 2023. 6. 4. 17:52

1. NVL/NVL2

1) NVL (컬럼명, NULL일 때 값)

  • 해당 칼럼의 값이 NULL인 경우 특정값으로 출력할 수 있음

2) NVL2 (컬럼명, NULL일 때 값, NULL이 아닐 때 값)

  • 해당 칼럼의 값이 NULL이 아닌 경우에 특정값으로 출력할 수 있음.
SELECT
NVL(LUNCHMENU, '점심메뉴미정') AS LUNCH_MENU,
NVL2(LUNCHMENU, '점심메뉴미정', '점심메뉴확정') AS LUNCH_MENU2
FROM MEAL
  LUNCH_MENU LUNCH_MENU2
IS NULL 점심메뉴미정 점심메뉴미정
IS NOT NULL 짜장면 점심메뉴확정

🟡 NVL을 사용할 때는 Alias를 꼭 지정해주어야 한다.
NVL은 값만 정해줄 뿐 컬럼명을 지정해주는 것은 아니기 때문.
이거 몰라서 몇 시간 헤멤...🤦‍♂️

 

2. UNION (ALL)

1) UNION (ALL)

  • 여러 개의 SELECT 문 결과를 합치기 위해서 사용한다.
  • UNION을 사용할 경우 합쳐진 결과에서 중복을 제거한 결과를 반환하고,
    UNION ALL을 사용하면 중복을 제거하지 않고 합쳐진 결과를 그대로를 반환
  • 행별집계를 하는데 유용

 

3. (+) OuterJoin

  • 몰랐는데 OUTER JOIN의 (+)표현식이 있었다.
  • WHERE 절에서 사용되며, (+)기호가 붙지 않은 쪽을 기준으로 OUTER JOIN이 실행됨
SELECT *
FROM A, B
WHERE A.KEY= B.KEY (+)
  • LEFT OUTER JOIN이 된다.(A테이블 기준)
    • A테이블은 전부 조회됨
    • B.KEY가 없더라도 A.KEY가 존재한다면 조회됨

 

'lectureNote > SQL' 카테고리의 다른 글

사용자 정의 함수  (0) 2023.07.09
트리거 (TRIGGER)  (0) 2023.07.05
프로시저 (PROCEDURE) 생성, 실행 , 삭제  (0) 2023.07.05
ibatis ) isNotEmpty 태그  (0) 2023.05.25
데이터 모델링 - 식별자와 관계선  (0) 2022.09.19