IF...ELSE(Transact-SQL)
적용 대상: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW) Microsoft Fabric의 SQL 분석 엔드포인트 Microsoft Fabric의 웨어하우스
Transact-SQL 문을 실행하기 위한 조건을 설정합니다. 조건이 충족되면 키워드와 해당 조건을 따르는 IF
Transact-SQL 문이 실행됩니다. 부울 식은 반환됩니다 TRUE
. 선택적 ELSE
키워드는 조건이 충족되지 않을 때 IF
실행되는 다른 Transact-SQL 문을 소개합니다. 부울 식은 반환됩니다 FALSE
.
구문
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 DATENAME(weekday, GETDATE()) IN (N'Saturday', N'Sunday')
SELECT 'Weekend';
ELSE
SELECT 'Weekday';
자세한 예제는 ELSE(IF... ELSE).
예: Azure Synapse Analytics 및 분석 플랫폼 시스템(PDW)
다음 예에서는 IF...ELSE
를 사용하여 DimProduct
테이블에 있는 항목의 가중치에 따라 두 응답 중 사용자를 표시할 응답을 결정합니다.
-- Uses AdventureWorksDW
DECLARE @maxWeight FLOAT, @productKey INT;
SET @maxWeight = 100.00;
SET @productKey = 424;
IF @maxWeight <= (
SELECT Weight
FROM DimProduct
WHERE ProductKey = @productKey
)
SELECT @productKey AS ProductKey,
EnglishDescription,
Weight,
'This product is too heavy to ship and is only available for pickup.' AS ShippingStatus
FROM DimProduct
WHERE ProductKey = @productKey;
ELSE
SELECT @productKey AS ProductKey,
EnglishDescription,
Weight,
'This product is available for shipping or pickup.' AS ShippingStatus
FROM DimProduct
WHERE ProductKey = @productKey;