IF...ELSE (Transact-SQL)
Gilt für:SQL Server
Azure SQL-Datenbank
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Analytics-Endpunkt in Microsoft Fabric
Warehouse in Microsoft Fabric
Legt Bedingungen für die Ausführung einer Transact-SQL-Anweisung fest. Die Transact-SQL-Anweisung nach dem IF-Schlüsselwort und der zugehörigen Bedingung wird nur ausgeführt, wenn die Bedingung erfüllt ist. Dies ist der Fall, wenn der boolesche Ausdruck TRUE zurückgibt. Das optionale ELSE-Schlüsselwort führt eine alternative Transact-SQL-Anweisung ein, die ausgeführt wird, wenn die IF-Bedingung nicht erfüllt ist. Dies ist der Fall, wenn der boolesche Ausdruck FALSE zurückgibt.
Transact-SQL-Syntaxkonventionen
Syntax
IF Boolean_expression
{ sql_statement | statement_block }
[ ELSE
{ sql_statement | statement_block } ]
Hinweis
Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 (12.x) und früher finden Sie unter Dokumentation zu früheren Versionen.
Argumente
Boolean_expression
Ein Ausdruck, der TRUE oder FALSE zurückgibt. Wenn der boolesche Ausdruck eine SELECT-Anweisung enthält, muss die SELECT-Anweisung in Klammern eingeschlossen werden.
{ sql_statement| statement_block }
Ist eine beliebige Transact-SQL-Anweisung oder -Anweisungsgruppe, die mithilfe eines Anweisungsblocks definiert wurde. Wenn kein Anweisungsblock angegeben wurde, kann sich die IF- oder ELSE-Bedingung nur auf die Leistung einer einzelnen Transact-SQL-Anweisung auswirken.
Um einen Anweisungsblock zu definieren, verwenden Sie die Schlüsselwörter zur Ablaufsteuerung BEGIN und END.
Bemerkungen
Ein IF...ELSE-Konstrukt kann in Batches, gespeicherten Prozeduren und Ad-hoc-Abfragen verwendet werden. Wenn dieses Konstrukt in einer gespeicherten Prozedur verwendet wird, wird damit das Vorhandensein bestimmter Parameter getestet.
IF-Tests können nach einem anderen IF oder auf ein ELSE folgend geschachtelt werden. Das Limit für die Anzahl geschachtelter Ebenen hängt vom verfügbaren Arbeitsspeicher ab.
Beispiel
IF DATENAME(weekday, GETDATE()) IN (N'Saturday', N'Sunday')
SELECT 'Weekend';
ELSE
SELECT 'Weekday';
Weitere Beispiele finden Sie unter ELSE (IF...ELSE) (Transact-SQL).
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 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
Weitere Informationen
BEGIN...END (Transact-SQL)
END (BEGIN...END) (Transact-SQL)
SELECT (Transact-SQL)
WHILE (Transact-SQL)
CASE (Transact-SQL)
Sprachkonstrukte zur Ablaufsteuerung (Transact-SQL)ELSE (IF...ELSE) (Transact-SQL)
Feedback
Feedback senden und anzeigen für