IF...ELSE (Transact-SQL)
Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-Endpunkt in Microsoft FabricWarehouse in Microsoft Fabric
Legt Bedingungen für die Ausführung einer Transact-SQL-Anweisung fest. Die Transact-SQL-Anweisung, die einem IF
Schlüsselwort (keyword) folgt und dessen Bedingung ausgeführt wird, wenn die Bedingung erfüllt ist: der boolesche Ausdruck gibt TRUE
zurück. Die optionale ELSE
Schlüsselwort (keyword) 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ückFALSE
.
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 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 Steuerung des Flusses Schlüsselwort (keyword) und BEGIN
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;
Zugehöriger Inhalt
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für