Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо к:SQL Server
База данных Azure SQL
Управляемый экземпляр Azure SQL
Azure Synapse Analytics
Система платформы аналитики (PDW)
Конечная точка SQL аналитики в Microsoft Fabric
Хранилище в Microsoft Fabric
База данных SQL в Microsoft Fabric
Задает условия выполнения для инструкции Transact-SQL. Инструкция Transact-SQL (sql_statement) после boolean_expression выполняется, если boolean_expression оценивается TRUE. Необязательное ELSE ключевое слово — это альтернативная инструкция Transact-SQL, которая выполняется при boolean_expression вычисления FALSE или NULL.
Соглашения о синтаксисе Transact-SQL
Syntax
IF boolean_expression
{ sql_statement | statement_block }
[ ELSE
{ sql_statement | statement_block } ]
Arguments
boolean_expression
Выражение, возвращающее TRUE или FALSE.
Если boolean_expression содержит инструкциюSELECT, SELECT оператор должен быть заключен в скобки.
{ sql_statement | statement_block }
Любая допустимая инструкция Transact-SQL или группирование инструкций, как определено с блоком инструкций. Чтобы определить блок инструкций (пакет), используйте ключевые слова BEGIN языка управления потоком и END. Хотя все инструкции Transact-SQL допустимы в блоке BEGIN...END , некоторые инструкции Transact-SQL не должны группироваться в одном пакете (блок инструкций).
Типы возвращаемых данных
Boolean
Examples
Примеры кода в этой статье используют базу данных образца AdventureWorks2025 или AdventureWorksDW2025, которую можно скачать с домашней страницы образцов и проектов сообщества Microsoft SQL Server и.
A. Использование логического выражения
В следующем примере имеется логическое выражение (1 = 1), которое имеет значение true, и, следовательно, выводит первую инструкцию.
IF 1 = 1 PRINT 'Boolean expression is true.'
ELSE PRINT 'Boolean expression is false.';
В следующем примере имеется логическое выражение (1 = 2), которое имеет значение false, поэтому выводит вторую инструкцию.
IF 1 = 2 PRINT 'Boolean expression is true.'
ELSE PRINT 'Boolean expression is false.';
GO
B. Использование запроса в рамках логического выражения
В следующем примере выполняется запрос как часть логического выражения. Так как в Product таблице есть 10 велосипедов, которые соответствуют условию в WHERE предложении, первая инструкция печати выполняется. Вы можете изменить > 5> 15значение , чтобы узнать, как может выполняться вторая часть инструкции.
USE AdventureWorks2022;
GO
IF (SELECT COUNT(*)
FROM Production.Product
WHERE Name LIKE 'Touring-3000%'
) > 5
PRINT 'There are more than 5 Touring-3000 bicycles.'
ELSE
PRINT 'There are 5 or less Touring-3000 bicycles.';
GO
C. Использование блока инструкций
В следующем примере запрос выполняется как часть логического выражения, а затем выполняются немного отличающиеся блоки инструкций, основанные на результате логического выражения. Каждый блок инструкций начинается с BEGIN и завершается END.
USE AdventureWorks2022;
GO
DECLARE @AvgWeight DECIMAL(8, 2),
@BikeCount INT
IF (
SELECT COUNT(*)
FROM Production.Product
WHERE Name LIKE 'Touring-3000%'
) > 5
BEGIN
SET @BikeCount = (
SELECT COUNT(*)
FROM Production.Product
WHERE Name LIKE 'Touring-3000%'
);
SET @AvgWeight = (
SELECT AVG(Weight)
FROM Production.Product
WHERE Name LIKE 'Touring-3000%'
);
PRINT 'There are ' + CAST(@BikeCount AS VARCHAR(3)) + ' Touring-3000 bikes.'
PRINT 'The average weight of the top 5 Touring-3000 bikes is ' + CAST(@AvgWeight AS VARCHAR(8)) + '.';
END
ELSE
BEGIN
SET @AvgWeight = (
SELECT AVG(Weight)
FROM Production.Product
WHERE Name LIKE 'Touring-3000%'
);
PRINT 'Average weight of the Touring-3000 bikes is ' + CAST(@AvgWeight AS VARCHAR(8)) + '.';
END;
GO
D. Используйте вложенный IF... Инструкции ELSE
В следующем примере показано, как IF...ELSE оператор может быть вложен в другой. Задайте для переменной значение , и @Numberдля проверки каждой 5 инструкции. 50500
DECLARE @Number INT;
SET @Number = 50;
IF @Number > 100
PRINT 'The number is large.';
ELSE
BEGIN
IF @Number < 10
PRINT 'The number is small.';
ELSE
PRINT 'The number is medium.';
END;
GO
Примеры: Azure Synapse Analytics и система платформы аналитики (PDW)
Д. Использование запроса как части логического выражения
В следующем примере определяется IF...ELSE , какие из двух ответов отображаются пользователем на основе веса элемента в таблице в DimProductAdventureWorksDW2012 базе данных.
DECLARE @maxWeight FLOAT, @productKey INT;
SET @maxWeight = 100.00;
SET @productKey = 424;
IF @maxWeight <= (
SELECT [Weight]
FROM DimProduct
WHERE ProductKey = @productKey;
)
BEGIN
SELECT @productKey,
EnglishDescription,
[Weight],
'This product is too heavy to ship and is only available for pickup.'
FROM DimProduct
WHERE ProductKey = @productKey;
END
ELSE
BEGIN
SELECT @productKey,
EnglishDescription,
[Weight],
'This product is available for shipping or pickup.'
FROM DimProduct
WHERE ProductKey = @productKey;
END