MyTetra Share
Делитесь знаниями!
IF...ELSE (Transact-SQL)
30.07.2019
00:03
Текстовые метки: SQL Server,
Раздел: !Закладки - SQL Server

IF...ELSE (Transact-SQL)

ОБЛАСТЬ ПРИМЕНЕНИЯ: SQL Server База данных SQL AzureХранилище данных SQL AzureParallel Data Warehouse

Задает условия для выполнения инструкции 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 } ]


Аргументы

Boolean_expression
Выражение, возвращающее значение TRUE или FALSE. Если логическое выражение содержит инструкцию SELECT, инструкция SELECT должна быть заключена в скобки.

{ sql_statement| statement_block }
Любая инструкция или группа инструкций языка Transact-SQL, указанная с помощью блока инструкций. Без использования блока инструкций условия IF и ELSE могут повлиять на выполнение только одной инструкции языка Transact-SQL.

Для определения блока инструкций используйте ключевые слова потока управления BEGIN и END.

Remarks

Конструкция IF...ELSE может быть использована в пакетах, хранимых процедурах и нерегламентированных запросах. При использовании в хранимой процедуре эта конструкция часто применяется для проверки существования некоторого параметра.

Проверки IF могут находиться внутри другого IF или следующего ELSE. Ограничение количества вложенных уровней зависит от свободной памяти.

Пример

IF DATENAME(weekday, GETDATE()) IN (N'Saturday', N'Sunday')

SELECT 'Weekend';

ELSE

SELECT 'Weekday';


Дополнительные сведения см. в разделе ELSE (IF...ELSE) (Transact-SQL).

Примеры: Хранилище данных SQL Azure и Параллельное хранилище данных

В следующем примере используется 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);


См. также:

BEGIN...END (Transact-SQL)
END (BEGIN...END) (Transact-SQL)
SELECT (Transact-SQL)
WHILE (Transact-SQL)
CASE (Transact-SQL)
Язык управления потоком (Transact-SQL) ELSE (IF...ELSE) (Transact-SQL)

Так же в этом разделе:
 
MyTetra Share v.0.52
Яндекс индекс цитирования