[SQL] CASE WHEN / CREATE FUNCTION
2022. 11. 2. 19:13ㆍSQL
📚 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 |
📌 사용 예시
source : 가장 쉽게 시작하는 데이터분석, SQL유치원 (패스트캠퍼스)
• DECLARE는 함수 안에서 사용하는 임시 값임.
• '쿼리' 부분에 실제로 함수 기능 부분을 작성함
• 쿼리 부분에 CASE WHEN 조건을 사용하면 조건에 따른 결과값 출력이 가능함
source : 가장 쉽게 시작하는 데이터분석, SQL유치원 (패스트캠퍼스)
• 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] 연습문제 - 2 (0) | 2023.11.26 |
---|---|
[SQL] 연습문제 - 1 (0) | 2023.11.26 |
[SQL] GROUP BY (0) | 2022.11.02 |
[SQL] 기본함수 / ORDER BY (0) | 2022.11.02 |
[SQL] 데이터베이스 (0) | 2022.11.02 |