[SQL] CASE WHEN / CREATE FUNCTION

2022. 11. 2. 19:13SQL

📚 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