MSSQL

[MSSQL] 프로시저 (Procedure) IF, ELSE, ELSEIF 분기 처리

허니용 2024. 7. 10. 22:39
728x90
반응형

프로시저(Procedure)에서 분기 처리 IF, ELSE IF, ELSE
-- 프로시저 시작

DECLARE -- 변수 선언
	  @user		VARCHAR(40)
	, @ai		VARCHAR(40)
	, @color	VARCHAR(40)
		
	
--@user: 인공지능아 내가 입고 있는 티셔츠 무슨색이야?
--@ai: 스캔해 보겠습니다.
	
set @color = '노란'
	
IF @color = '빨강'   -- 분기1
BEGIN
	SELECT '빨간색입니다.'
END

ELSE IF @color = '노란'  -- 분기2
BEGIN
	SELECT '노란색입니다.'
END

ELSE   -- 분기3
BEGIN
	SELECT '어떤색을 입으셨는지 모르겠어요.'
END

-- 프로시저 종료

MSSQL에서 분기 처리하는 방법입니다.

 

인공지능이 사용자가 입고 있는 티셔츠의 색깔을 노란색으로 보았고요.

분기 1에서 @color가 노란색이 아니기 때문에 분기 2로 넘어갑니다.
분기 2에서 노란색이어서 BEGIN END 문안으로 들어가게 되고 '노란색입니다.'라고 출력되게 됩니다.
분기 3은 처리되지 않고 프로시저가 종료됩니다.

 

MSSQL에서 분기 처리하는 방법을 결론부터 말씀드려 보았고요.

조금 더 이해가 필요하신 분은 아래 내용을 보시면 됩니다.

 

 

프로그래밍을 하다 보면 만날 수밖에 없는 분기 처리를 프로시저에서는 어떻게 사용하는지 알아보도록 하겠습니다.

분기 처리가 무엇일까?

출처: 표준국어대사전 (네이버 검색)

분기 단어의 사전적 의미를 먼저 알아보는 게 좋겠죠? 
분기의 의미는 나뉘어서 갈라짐, 프로그램의 실행 순서를 변경 정도로 이해하면 되겠습니다.
예를 들어 쉽게 어떤 의미인지 이해보도록 하겠습니다.

 

 

분기 처리는 우리의 인생에서도 많이 나오는 고민거리이죠. 우리는 하루에도 수십 번 선택에 대한 고민을 합니다. 빨간 옷을 입을까? 파란 옷을 입을까? 케이크를 먹을까? 마카롱을 먹을까? 등등 수십 가지의 분기 처리를 통해 선택을 하게 됩니다.

 

이처럼 위 그림에서 색칠한 부분이 고민하는 부분이면서 분기 처리되는 부분입니다.

 

 

IF 비가 온다  -- 만약 비가 온다면
{
    우산을 가지고 나간다.
}
ELSE -- 비가 오지 않으면
{
    그냥 나간다.
}

조금 더 프로그래밍과 비슷하게 적어보면 
밖에 비가 온다면 우산을 가지고 나가고 비가 안 오면 그냥 나간다. 
사람이 하는 말을 프로그래밍하는 부분이라 이 정도만 이해하시면 될듯합니다.

 

 

중첩 IF문
IF @color = '빨강'
BEGIN
    IF 1=1
    BEGIN
        SELECT '빨간색입니다.'
    END
    ELSE
    BEGIN
        SELECT '음...'
    END
END
ELSE
BEGIN
    SELECT '무슨색인지 모르겠어요.'
END

필요에 따라 IF 문안에 IF 문을 사용할 수 있습니다.

 

 

다중 조건문
IF @value1 = 100 AND @value2 = 100
BEGIN 
    SELECT 'value1, value2가 각각 100이 맞습니다.'
END

IF 문에 조건을 두 개 넣었고요. AND 조건이라 둘 다 일치해야 합니다.

 

 

IF @value1 = 100 OR @value2 = 100
BEGIN 
    SELECT 'value1, value2 중에 100 이 있습니다.'
END

OR 조건이라 둘 중에 하나라도 참이면 SELECT 문이 실행됩니다.

 

 

IF @value1 IN (50, 60, 70)
BEGIN 
    SELECT 'value1가 50이거나 60이거나 70입니다.'
END

IF 문에 IN 조건도 가능해요.

 

 

IF @value1 BETWEEN 50 AND 70
BEGIN 
    SELECT 'value1가 50~70사이의 숫자입니다.'
END

BETWEEN 조건도 가능합니다.

 

 

마무리

MSSQL 프로시저(Procedure)나 쿼리 창 등에서 사용 가능한 분기 처리 (IF, ELSE)에 대해 알아보고 여러 가지 방법으로 실습해 보았습니다. 
프로그래밍에서 많이 사용되는 부분이니 잘 이해가 되었으면 좋겠습니다.
이상 마칩니다~

728x90
반응형