본문 바로가기
DataBase/MsSql

MSSQL 프로시저 IF 문 사용법 및 예제

by 아우럼 2024. 5. 20.
반응형

 

MSSQL 프로시저 IF 문은 조건에 따라서 분기 처리하기 위해서 사용하는 예약어입니다. 타 프로그래밍 언어도 문법의 차이는 있지만 정의는 같습니다.

 

프로시저 IF 문 정의 및 설명.

 

  • 프로그램 언어에서 IF 문은 가장 기본적인 개념입니다.
  • IF 문은 프로시저에서 분기 처리하기 위해서 사용합니다.
  • 프로시저에서 IF 문을 중첩으로 사용할 수 있습니다.
  • 프로시저 IF 문은 다중 조건문을 사용할 수 있습니다.

프로시저 IF 문 순서도.
프로시저 IF 문 순서도.

 

프로시저 IF 문 사용법.

IF 분기 처리 사용 방법.

  • 프로시저 IF 문은 begin, end 블록 해줘야 유지보수에 좋습니다.
-- IF 분기처리 사용 방법.
-- DROP PROCEDURE [STORE_PROCEDURE_IF_STATEMENT_EX1];
CREATE  PROCEDURE [DBO].[STORE_PROCEDURE_IF_STATEMENT_EX1]        
	@UseAge INT
AS
BEGIN
   IF(@UseAge = 20)   
   BEGIN
	  PRINT('UseAge 20 이면 출력합니다.');
   END
   ELSE IF (@UseAge = 30) 
   BEGIN
     PRINT('UseAge 30 이면 출력합니다.');
   END
   ELSE 
   BEGIN 
     PRINT('UseAge 20,30 아닌경우 출력합니다.');
   END	 
END;

 

프로시저에서 IF 문을 중첩 사용법.

  • IF 조건문 내부에서 IF 문 중첩으로 사용할 수 있습니다.
-- 프로시저에서 IF문을 중첩 사용법.
-- DROP PROCEDURE [[STORE_PROCEDURE_IF_STATEMENT_EX2]];
CREATE  PROCEDURE [DBO].[STORE_PROCEDURE_IF_STATEMENT_EX2]  
    @UserNm  VARCHAR(100),
    @UseAge INT
AS
BEGIN  
  IF(@UseAge = 20) 
  BEGIN
    IF(@UserNm ='Lee')
    BEGIN
      PRINT('UseAge: 20, UserNm:Lee 경우 출력합니다. ');
    END
    ELSE
    BEGIN
      PRINT('UseAge: 20 이고  UserNm:Lee 아닌경우 출력');
    END 
  END
  ELSE
   BEGIN
     PRINT('UseAge:20 아닌경우 출력 합니다.');
   END 
END;

프로시저 IF 문은 다중 조건문을 사용법.

  • IF 조건문에서 AND, OR 예약어를 사용하여 다중 조건문을 작성할 수 있습니다.
-- 프로시저 IF문은 다중 조건문을 사용법.
-- DROP PROCEDURE [STORE_PROCEDURE_IF_STATEMENT_EX3];
CREATE  PROCEDURE [DBO].[STORE_PROCEDURE_IF_STATEMENT_EX3]  
   @UserNm  VARCHAR(100),
   @UseAge INT,
   @UserAddress  VARCHAR(100)
AS
BEGIN
   IF(@UseAge IN('10','20','30') AND  @UserNm = 'Lee' and @UserAddress = 'LA' ) 
   BEGIN
     PRINT('UseAge: 10,20,30 포함되고, UserNm: Lee 이고, UserAddress: LA 인경우 출력합니다. ');
   END
   ELSE
   BEGIN
     PRINT('UseAge: 10,20,30 포함되고, UserNm: Lee 이고, UserAddress: LA가 아닌경우 출력합니다. ');
   END
END;

 

프로시저 IF 문 마무리 하며. 

  • case when 문도 if 문하고 같이 분기 처리할 수 있습니다.
  • T-SQL에서는 declare 문을 사용하면 IF 문을 사용할 수 있습니다.
  • MSSQL에서는 between, in 구분, not 등의 조건도 사용할 수 있습니다.

 

반응형