Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:SQL Server
Azure SQL Database
Spravovaná instance Azure SQL
Azure Synapse Analytics
Analytics Platform System (PDW)
Koncový bod analýzy SQL v Microsoft Fabric
Sklad v Microsoft Fabric
Databáze SQL v Microsoft Fabric
Ukládá podmínky pro spuštění příkazu Transact-SQL. Příkaz Transact-SQL, který následuje za klíčovým slovem IF a jeho podmínkou, se provede, pokud je podmínka splněna: logický výraz vrátí TRUE. Volitelné ELSE klíčové slovo zavádí další příkaz Transact-SQL, který se spustí, když IF podmínka není splněna: logický výraz vrátí FALSE.
Syntax
IF boolean_expression
{ sql_statement | statement_block }
[ ELSE
{ sql_statement | statement_block } ]
Arguments
boolean_expression
Výraz, který vrací TRUE nebo FALSE. Pokud logický výraz obsahuje SELECT příkaz, SELECT musí být příkaz uzavřený v závorkách.
{ sql_statement | statement_block }
Libovolný příkaz Transact-SQL nebo seskupování příkazů podle definice pomocí bloku příkazu. Pokud se nepoužívá blok příkazu, IFELSE může podmínka ovlivnit výkon pouze jednoho příkazu Transact-SQL.
K definování bloku příkazu použijte klíčová slova BEGIN control-of-flow a END.
Remarks
Konstruktor IF...ELSE lze použít v dávkách, v uložených procedurách a v ad hoc dotazech. Pokud se tento konstruktor používá v uložené proceduře, obvykle se testuje existence některého parametru.
IF testy lze vnořit po jiném IF nebo po provedení ELSE. Limit počtu vnořených úrovní závisí na dostupné paměti.
Examples
IF DATENAME(weekday, GETDATE()) IN (N'Saturday', N'Sunday')
SELECT 'Weekend';
ELSE
SELECT 'Weekday';
Další příklady najdete v tématu ELSE (KDYŽ... ELSE).
Příklady: Azure Synapse Analytics a Analytický platformový systém (PDW)
Následující příklad používá IF...ELSE k určení, která ze dvou odpovědí má zobrazit uživatele na základě váhy položky v DimProduct tabulce.
-- 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;