📚 CASE WHEN
📌 문법
-- 방법1
CASE
WHEN 조건식1 THEN 결과1
WHEN 조건식2 THEN 결과2
ELSE 결과3
END
-- 방법2
CASE [컬럼]
WHEN 조건값1 THEN 결과1
WHEN 조건값2 THEN 결과2
ELSE 결과3
END
• 방법1은 조건식을 직접 입력하는 방식이고, 방법이는 컬럼을 지정하고 해당 컬럼에서 참거짓을 판별할 조건값을 입력하는 방식이다.
• ELSE 생략 시 NULL 값을 반환함
📚 함수 만들기
📌 문법
CREATE FUNCTION [함수 이름] ([입력값 이름] [데이터 타입], ......)
RETURNS [결과값 데이터 타입]
BEGIN
DECLARE [임시값 이름] [데이터 타입]
SET [임시값 이름] =[입력값 이름]
쿼리;
RETURN 결과값
END
📌 사용 예시
• DECLARE는 함수 안에서 사용하는 임시 값임.
• '쿼리' 부분에 실제로 함수 기능 부분을 작성함
• 쿼리 부분에 CASE WHEN 조건을 사용하면 조건에 따른 결과값 출력이 가능함
• SQL workbench 에서 함수를 사용할 때에는 위와 같이 앞뒤로 DELIMITER 라는 추가적인 명령어를 입력해야 함
• 끝부분 DELIMITER 의 콤마 앞에는 한 칸 띄워야 함
-- 함수 만들기
SET GLOBAL log_bin_trust_function_creators = 1 ;
--DROP FUNCTION isStrong;
DELIMITER //
CREATE FUNCTION isStrong(attack INT, defense INT)
RETURNS VARCHAR(20)
BEGIN
DECLARE a INT;
DECLARE b INT;
DECLARE strong VARCHAR(20);
SET a = attack ;
SET b = defense;
SELECT case when a + b > 120 then 'very strong'
when a + b > 90 then 'strong'
else 'not strong' END
INTO strong;
RETURN strong;
END
//
DELIMITER ; -- 꼭 콤마랑 한 칸 띄우기
• 라인 14와 같이 SELECT 부분에 CASE WHEN을 사용하면 기준이나 조건에 따른 결과값 출력이 가능함
'SQL' 카테고리의 다른 글
[SQL] GROUP BY (0) | 2023.03.08 |
---|---|
[SQL] 기본함수, ORDER BY (1) | 2023.03.05 |
[SQL] 데이터베이스 다루기 (0) | 2023.02.28 |
[SQL] 서브쿼리 기본 개념 (0) | 2023.02.06 |
댓글