Notice
Recent Posts
Recent Comments
Link
JiYoung Dev 🖥
[database 고급] case문 (2023.08.08) 본문
반응형
조인 문법
-- 조인으로 가져오는 경우
SELECT A.CUST_ID
, A.CUST_NAME
, A.SCORE
, B.GRADE_NAME
FROM TB_CUST A
, TB_GRADE B
WHERE A.SCORE BETWEEN B.STS_SCORE AND B.END_SCORE;
서브쿼리 문법
-- 서브 쿼리로 가져오는 경우
SELECT A.CUST_ID
, A.CUST_NAME
, A.SCORE
, (
SELECT GRADE_NAME
FROM TB_GRADE
WHERE A.SCORE BETWEEN STS_SCORE AND END_SCORE) AS GRADE_NAME
FROM TB_CUST A;
DECODE 문법
-- DECODE로 가져오는 경우
SELECT A.CUST_ID
, A.CUST_NAME
, A.SCORE
, DECODE(CEIL(SCORE/20), 0, '브론즈', 1, '브론즈', 2, '실버', 3, '골드', 4, 'VIP', 5, 'VVIP') AS GRADE_NAME
FROM TB_CUST A;
score/20 을 했을 때 0 이면 '브론즈', 1이면 브론즈, 2이면 실버 .... → switch문과 유사함
-- 함수
- CEIL : 올림
- ROUND : 반올림
- FLOOR : 내림
CASE 문법
-- CASE 문법으로 가져올 경우
SELECT A.CUST_ID
, A.CUST_NAME
, A.SCORE
, CASE WHEN SCORE > 100 THEN '범위오류'
WHEN SCORE >= 81 THEN 'VVIP'
WHEN SCORE >=61 THEN 'VIP'
WHEN SCORE >=41 THEN '골드'
WHEN SCORE >=21 THEN '실버'
WHEN SCORE >= 0 THEN '브론즈'
ELSE '범위오류'
END AS GRADE_NAME
FROM TB_CUST A;
주의 !! 위에서부터 실행하여 조건이 맞으면 아랫부분은 검사하지 않고 끝을 냄
반응형
'Study > database' 카테고리의 다른 글
[database 고급] CTAS (2023.08.08) (0) | 2023.08.08 |
---|---|
[database 고급] merge (2023.08.08) (0) | 2023.08.08 |
[database 고급] EXISTS (2023.08.07) (0) | 2023.08.07 |
[Oracle Database] ROWNUM, TOP-N, 페이징 기술, 서브쿼리 (2023.03.28~29) (0) | 2023.03.28 |
[Oracle Database] TCL, DCL (2023.03.27) (0) | 2023.03.27 |