상세 컨텐츠

본문 제목

[개미의 걸음 SQLD 2과목] DECODE, CASE, WITH문

자격증/SQLD

by IT개미 데이터 2020. 12. 26. 07:07

본문

728x90

DECODE

SELECT DECODE(테이블명, 조건, 참일 때 출력될 값, 거짓일 때 출력될 값) FROM 테이블명;

특정 조건이 참/거짓일 때 각각 다른 값을 부여[IF문과 유사]

 

CASE

SELECT CASE WHEN 조건1 THEN 결과1
            WHEN 조건2 THEN 결과2
            .....
            ELSE 결과
       END
FROM 테이블명;
            

해당 조건에 만족하는 결과 값을 출력[IF~ THEN~ ELSE~ END문과 유사]

  • "조건1"이면 "결과1"출력, "조건2"이면 "결과2"출력.., 만족하는 조건이 없으면 "결과" 출력
  • SEARCHED_CASE_EXPRESSION과 SIMPLE-CASE_EXPRESSION이 있음 
SEARCHED_CASE_EXPRESSION SIMPLE-CASE_EXPRESSION
결정된 결과를 Boolean표현식의 묶음으로 계산 결정된 결과를 단순한 표현식의 묶음으로 계산
SELECT 칼럼명,
      CASE WHEN 칼럼명 = '데이터값' THEN '결과'
          ELSE '결과2'
      END [AS 별칭명]
FROM 테이블명;
SELECT 칼럼명,
      CASE 칼럼명 WHEN '데이터값' THEN '결과'
          ELSE '결과2'
      END [AS 별칭명]
FROM 테이블명;

 

WITH

WITH 임시테이블명/뷰명 AS (SELECT 칼럼명 FROM 테이블명 WHERE 조건)
SELECT * FROM 임시테이블명/뷰명 WHERE 조건;

서브쿼리를 사용해 임시 테이블이나 뷰처럼 사용할 수 있는 구문

  • 조건을 지정할 경우 WHERE절 사용
  • 서브쿼리 블록에 별칭 지정 가능
  • 옵티마이저는 SQL을 인라인 뷰나 임시 테이블로 판단

# 옵티마이저[Optimizer]

더보기

SQL의 실행 계획을 수립하고 SQL을 실행하는 DBMS 소프트웨어

  • 동일한 결과가 나오더라도 SQL을 어떻게 실행하느냐에 따라 성능이 달라지므로 옵티마이저 실행 계획은 SQL성능에 중요한 역할을 함

 

 

728x90

관련글 더보기

댓글 영역