다음을 통해 공유


IF...ELSE(Transact-SQL)

Transact-SQL 문을 실행하기 위한 조건을 설정합니다. IF 키워드 및 조건 다음에 이어지는 Transact-SQL 문은 부울 식이 TRUE를 반환하는 경우 즉, 조건이 만족되는 경우 실행됩니다. ELSE 키워드는 선택적이며 IF 조건이 만족되지 않는 경우 즉, 부울 식이 FALSE를 반환하는 경우 실행될 대체 Transact-SQL 문을 동반합니다.

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

IF Boolean_expression 
     { sql_statement | statement_block } 
[ ELSE 
     { sql_statement | statement_block } ] 

인수

  • Boolean_expression
    TRUE 또는 FALSE를 반환하는 식입니다. 부울 식이 SELECT 문을 포함하는 경우에는 SELECT 문을 괄호로 묶어야 합니다.

  • { sql_statement| statement_block }
    문 블록을 사용하여 정의한 Transact-SQL 문 또는 문 그룹입니다. 문 블록을 사용하지 않으면 IF나 ELSE 조건이 하나의 Transact-SQL 문 실행에만 영향을 줍니다.

    문 블록을 정의하려면 흐름 제어 키워드인 BEGIN 및 END를 사용하십시오.

주의

일괄 처리, 저장 프로시저 및 임시 쿼리 내에서 IF...ELSE 구문을 사용할 수 있습니다. 저장 프로시저에서는 일부 매개 변수의 존재 여부를 테스트하는 데 이 구문이 자주 사용됩니다.

IF 검사는 다른 IF 뒤에 중첩될 수 있으며 ELSE 뒤에 다른 IF가 올 수도 있습니다. 가능한 중첩 수준은 사용 가능한 메모리에 따라 달라집니다.

다음 예에서는 uspGetList 저장 프로시저의 출력을 IF…ELSE 구문의 조건으로 사용하는 방법을 보여 줍니다. 이 저장 프로시저는 저장 프로시저 만들기에서 정의됩니다. 이 예에서 저장 프로시저는 $700보다 낮은 가격의 자전거 목록을 반환하며 이에 따라 첫 번째 PRINT 문이 실행됩니다.

DECLARE @compareprice money, @cost money 
EXECUTE Production.uspGetList '%Bikes%', 700, 
    @compareprice OUT, 
    @cost OUTPUT
IF @cost <= @compareprice 
BEGIN
    PRINT 'These products can be purchased for less than 
    $'+RTRIM(CAST(@compareprice AS varchar(20)))+'.'
END
ELSE
    PRINT 'The prices for all products in this category exceed 
    $'+ RTRIM(CAST(@compareprice AS varchar(20)))+'.'

자세한 내용은 ELSE(IF...ELSE)(Transact-SQL)를 참조하십시오.