IF...ELSE (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL-Analyseendpunkt in Microsoft Fabric Warehouse in Microsoft Fabric SQL-Datenbank in Microsoft Fabric
Legt Bedingungen für die Ausführung einer Transact-SQL-Anweisung fest. Die Transact-SQL-Anweisung, die einem IF
Schlüsselwort folgt und dessen Bedingung ausgeführt wird, wenn die Bedingung erfüllt ist: der boolesche Ausdruck gibt zurück TRUE
. Das optionale ELSE
Schlüsselwort führt eine weitere Transact-SQL-Anweisung ein, die ausgeführt wird, wenn die IF
Bedingung nicht erfüllt ist: der boolesche Ausdruck gibt zurück FALSE
.
Transact-SQL-Syntaxkonventionen
Syntax
IF boolean_expression
{ sql_statement | statement_block }
[ ELSE
{ sql_statement | statement_block } ]
Argumente
boolean_expression
Ein Ausdruck, der zurückgibt TRUE
oder FALSE
. Wenn der boolesche Ausdruck eine SELECT
Anweisung enthält, muss die SELECT
Anweisung in Klammern eingeschlossen werden.
{ sql_statement | statement_block }
Jede Transact-SQL-Anweisung oder -Anweisung, die mithilfe eines Anweisungsblocks definiert ist. Sofern kein Anweisungsblock verwendet wird, kann die IF
ELSE
Bedingung nur die Leistung einer Transact-SQL-Anweisung beeinflussen.
Verwenden Sie zum Definieren eines Anweisungsblocks die Schlüsselwörter für die Steuerung des Flusses BEGIN
und END
.
Hinweise
Ein IF...ELSE
Konstrukt kann in Batches, in gespeicherten Prozeduren und in Ad-hoc-Abfragen verwendet werden. Wenn dieses Konstrukt in einer gespeicherten Prozedur verwendet wird, müssen Sie in der Regel das Vorhandensein eines Parameters testen.
IF
Tests können nach einem anderen IF
oder nach einem ELSE
anderen geschachtelt werden. Das Limit für die Anzahl geschachtelter Ebenen hängt vom verfügbaren Arbeitsspeicher ab.
Beispiele
IF DATENAME(weekday, GETDATE()) IN (N'Saturday', N'Sunday')
SELECT 'Weekend';
ELSE
SELECT 'Weekday';
Weitere Beispiele finden Sie unter ELSE (WENN... ELSE).
Beispiele: Azure Synapse Analytics und Analytics-Plattformsystem (PDW)
Im folgenden Beispiel wird IF...ELSE
verwendet, um basierend auf der Gewichtung eines Elements in der DimProduct
-Tabelle festzulegen, welche Antwort von zwei Antworten dem Benutzer angezeigt wird.
-- 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;