Computer >> 컴퓨터 >  >> 프로그래밍 >> SQL Server

SQL Server IF...ELSE 조건문 사용법 완벽 가이드 (문법·예제 총정리)

다른 프로그래밍 언어와 마찬가지로 SQL Server 역시 조건에 따라 명령 실행 흐름을 제어할 수 있는 IF...ELSE 문을 제공합니다. 이번 글에서는 IF...ELSE 문의 기본 문법과 함께 실제 예제를 통해 누구나 쉽게 이해할 수 있도록 자세히 정리해 보겠습니다.

IF...ELSE 문이란?

SQL Server에서 IF...ELSE 문은 조건부 실행을 처리할 때 사용됩니다. 조건식이 참(TRUE)이면 해당 명령을 실행하고, 거짓(FALSE)이면 다른 명령을 실행하는 방식으로 동작합니다.

IF...ELSE 문법

SQL Server에서 IF...ELSE 분기문을 사용하려면 다음과 같은 문법을 따릅니다.

IF 조건
{조건이 참(TRUE)일 때 실행되는 명령문}

[ELSE
{조건이 거짓(FALSE)일 때 실행되는 명령문}]

참고 사항:

  1. ELSE 절은 필수가 아닙니다. IF 조건이 거짓(FALSE), 즉 조건을 충족하지 않을 때 별도의 명령문을 실행하고 싶은 경우에만 ELSE를 사용하면 됩니다.
  2. ELSE IF는 지원되지 않습니다. SQL Server의 IF...ELSE 문에는 ELSE IF 조건이 없으므로, 여러 개의 IF...ELSE 문을 중첩해서 사용해야 원하는 분기 로직을 구현할 수 있습니다.

IF...ELSE 구조 다이어그램

SQL Server IF...ELSE 조건문 사용법 완벽 가이드 (문법·예제 총정리)

예제 1. ELSE 절이 있는 IF...ELSE 문

DECLARE @salary INT;
SET @salary = 15000000;

IF @salary > 10000000
    PRINT '부장';
ELSE
    PRINT '사원';

GO

위 예제에서 변수 @salary(직원 급여)가 10,000,000보다 크면 '부장'이 출력되고, 그렇지 않으면 '사원'이 출력됩니다.

예제 2. ELSE 절이 없는 IF 문

ELSE 절은 선택 사항이므로 필요하지 않다면 생략할 수 있습니다.

DECLARE @salary INT;
SET @salary = 15000000;

IF @salary < 10000000
    PRINT '사원';

GO

이 문장에서는 @salary 값이 10,000,000보다 작을 때만 결과가 출력되며, 조건을 만족하지 않으면 아무 작업도 수행되지 않습니다.

예제 3. 중첩된 IF...ELSE 문

SQL Server에서는 다른 언어처럼 ELSE IF를 바로 작성할 수 없기 때문에, 여러 개의 IF...ELSE 문을 중첩해야 원하는 효과를 얻을 수 있습니다.

DECLARE @salary INT;
SET @salary = 15000000;

IF @salary > 12000000
    PRINT '이사';
ELSE
BEGIN
    IF @salary > 10000000
        PRINT '부장';
    ELSE
        PRINT '사원';
END;

GO

이 예제는 다음과 같이 해석할 수 있습니다. 급여가 12,000,000보다 크면 '이사'가 출력됩니다. 첫 번째 조건을 만족하지 못하면 두 번째 조건으로 넘어가 급여가 10,000,000보다 큰지 확인하고, 크면 '부장', 그 외의 경우에는 '사원'이 출력됩니다.

마무리

IF...ELSE 문은 저장 프로시저나 배치 스크립트에서 조건 분기를 처리할 때 매우 유용하게 활용됩니다. ELSE 절이 선택 사항이라는 점, 그리고 ELSE IF가 지원되지 않아 BEGIN...END 블록으로 중첩해야 한다는 점만 기억하면 다양한 조건 로직을 손쉽게 구현할 수 있습니다.