Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analysplattformssystem (PDW)
SQL-analysslutpunkt i Microsoft Fabric
Lager i Microsoft Fabric
SQL-databas i Förhandsversion av Microsoft Fabric
Inför villkor för körning av en Transact-SQL-instruktion. Den Transact-SQL-instruktionen som följer ett IF nyckelord och dess villkor körs om villkoret är uppfyllt: det booleska uttrycket returnerar TRUE. Det valfria ELSE nyckelordet introducerar en annan Transact-SQL-instruktion som körs när villkoret IF inte är uppfyllt: det booleska uttrycket returnerar FALSE.
Transact-SQL syntaxkonventioner
Syntax
IF boolean_expression
{ sql_statement | statement_block }
[ ELSE
{ sql_statement | statement_block } ]
Arguments
boolean_expression
Ett uttryck som returnerar TRUE eller FALSE. Om det booleska uttrycket innehåller en SELECT -instruktion måste -instruktionen SELECT omges av parenteser.
{ sql_statement | statement_block }
Alla Transact-SQL-instruktion eller -instruktionsgruppering enligt definitionen med hjälp av ett instruktionsblock. Om inte ett instruktionsblock används kan villkoret IF eller ELSE påverka prestanda för endast en Transact-SQL-instruktion.
Om du vill definiera ett instruktionsblock använder du nyckelorden BEGIN control-of-flow och END.
Remarks
En IF...ELSE konstruktion kan användas i batchar, i lagrade procedurer och i ad hoc-frågor. När den här konstruktionen används i en lagrad procedur är det vanligtvis att testa om det finns någon parameter.
IF tester kan kapslas efter en annan IF eller följa en ELSE. Gränsen för antalet kapslade nivåer beror på tillgängligt minne.
Examples
IF DATENAME(weekday, GETDATE()) IN (N'Saturday', N'Sunday')
SELECT 'Weekend';
ELSE
SELECT 'Weekday';
Fler exempel finns i ELSE (IF... ELSE).
Exempel: Azure Synapse Analytics and Analytics Platform System (PDW)
I följande exempel används IF...ELSE för att avgöra vilket av två svar som ska visas för användaren, baserat på vikten för ett objekt i DimProduct tabellen.
-- 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;