IF...ELSE(Transact-SQL)
Transact-SQL 문을 실행하기 위한 조건을 설정합니다. IF 키워드 및 조건 다음에 이어지는 Transact-SQL 문은 부울 식이 TRUE를 반환하는 경우 즉, 조건이 만족되는 경우 실행됩니다. ELSE 키워드는 선택적이며 IF 조건이 만족되지 않는 경우 즉, 부울 식이 FALSE를 반환하는 경우 실행될 대체 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)))+'.'
참고 항목
참조
BEGIN...END(Transact-SQL)
ELSE(IF...ELSE)(Transact-SQL)
END(BEGIN...END)(Transact-SQL)
SELECT(Transact-SQL)
WHILE(Transact-SQL)
CASE(Transact-SQL)
흐름 제어 언어(Transact-SQL)