IF...ELSE (Transact-SQL)

Применимо к:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure Управляемый экземпляр SQL Azure Конечная точка аналитики аналитики Synapse Analytics Analytics (PDW)SQL Analyticsв Microsoft FabricХранилище в Microsoft Fabric

Задает условия выполнения для инструкции Transact-SQL. Инструкция Transact-SQL, указанная за ключевым словом IF, и ее условие выполняются только в том случае, если логическое выражение возвращает значение TRUE. Необязательное ключевое слово ELSE вводит еще одну инструкцию языка Transact-SQL, которая выполняется в том случае, если условие IF не выполняется, то есть логическое выражение возвращает значение FALSE.

Соглашения о синтаксисе Transact-SQL

Синтаксис

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

Примечание.

Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.

Аргументы

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) (Transact-SQL).

Примеры: Azure Synapse Analytics и система платформы аналитики (PDW)

В следующем примере используется IF...ELSE для определения того, какой из двух ответов показать пользователю, на основе веса элемента в таблице DimProduct.

-- Uses AdventureWorksDW  

DECLARE @maxWeight FLOAT, @productKey INTEGER  
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

См. также

НАЧАТЬ... END (Transact-SQL)
END (BEGIN... END) (Transact-SQL)
SELECT (Transact-SQL)
WHILE (Transact-SQL)
CASE (Transact-SQL)
Язык управления потоком (Transact-SQL)ELSE (ЕСЛИ... ELSE) (Transact-SQL)