MSSQL - 조건문(IF-ELSEIF-ELSE) 구문, 사용 예시, 주의 사항

반응형

이 포스팅은 MSSQL을 기준으로 작성하였습니다. 다른 DBMS는 사용 방법이 약간 다를 수 있습니다.

 

조건문(IF)이란?

  • 프로그램의 흐름을 제어하기 위해 사용하는 실행문
  • 어떤 조건이 주어질 때 어떤 동작을 수행하는 실행문

구문

IF (조건)

  • 조건에 맞을 경우 수행
  • BEGIN ... END 로 블럭화 할 경우 블럭 전체의 코드를 수행
  • 단독 사용 가능 (ELSE IF 또는 ELSE 없이 사용)

 

 

 

 

ELSE IF (조건)

  • IF 조건 다음으로 오는 구문
  • IF 조건에 맞지 않을 경우 다음으로 제시 할 조건을 명시
  • 단독 사용 불가 (반드시 IF 다음에 명시)
  • 생략 가능

 

ELSE

  • IF 또는 ELSE IF 조건 다음으로 오는 구문
  • 명시한 모든 조건이 맞지 않을 경우 수행
  • 단독 사용 불가 (IF 또는 ELSE IF 없이 사용 불가)
  • 생략 가능

조건문의 시작과 끝을 BEGIN ... END 구문으로 블럭화

-- 조건문 : 1이 0보다 작으면???
IF ( 1 < 0 )
    BEGIN
        PRINT('IF : 1은 0보다 작습니다.')
    END
    
-- 다른 조건 : 1이 0과 같으면???
ELSE IF ( 1 = 0 )
    BEGIN
        PRINT('ELSE IF : 1은 0과 같습니다.')
    END
    
-- 위에서 명시한 조건에 충족하지 않으면???
ELSE
    BEGIN
    	PRINT('ELSE : 1은 0보다 큽니다.')
    END

  • 실행 결과


조건이 간단 할 경우 (1줄) BEGIN ... END 구문 생략

  • 위와 같이 한 줄로 조건문이 구성 될 경우, 굳이 블럭화를 하지 않아도 됨
  • 예시는 위에서 명시한 코드에서 BEGIN ... END 구문만 생략, 실행 결과는 같음
-- 조건문 : 1이 0보다 작으면???
IF ( 1 < 0 )
    PRINT('IF : 1은 0보다 작습니다.')
    
-- 다른 조건 : 1이 0과 같으면???
ELSE IF ( 1 = 0 )
    PRINT('ELSE IF : 1은 0과 같습니다.')
    
-- 위에서 명시한 조건에 충족하지 않으면???
ELSE
    PRINT('ELSE : 1은 0보다 큽니다.')

주의사항 : IF 중첩, 중복 사용

조건문(IF)은 IF ~ ELSE 까지가 블럭

  • 조건이 충족되면 다른 조건은 확인하지 않음
IF ( 1 > 0 )
	PRINT('IF : 1은 0보다 큽니다.')
	
ELSE IF ( 1 > 0 )
	PRINT('ELSE IF : 1은 0보다 큽니다.')


여러개의 조건문(IF)은 독립 수행

  • IF를 여러개 사용 할 경우, 각자 독립적으로 조건을 확인 후 수행
IF ( 1 > 0 )
	PRINT('첫번째 IF : 1은 0보다 큽니다.')
	
IF ( 1 > 0 )
	PRINT('두번째 IF : 1은 0보다 큽니다.')

 

즉,

하나의 수행을 해야 할 경우에는 IF - ELSE IF - ELSE 구문을 사용하여 모든 조건을 나열하고

여러개의 결과를 수행해야 할 경우에는 IF 구문을 여러개 사용하여 각각의 결과를 나열한다.

 

반응형