자격증/SQLD
[개미의 걸음 SQLD 2과목] DECODE, CASE, WITH문
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