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).
Примеры: 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;
Связанный контент
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по