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
Azure SQL Managed Instance
SQL databáze v Microsoft Fabric
Vrací jednu ze dvou hodnot, v závislosti na tom, zda se Booleovský výraz v SQL Serveru vyhodnocuje jako pravda nebo nepravda.
Syntaxe
IIF( boolean_expression, true_value, false_value )
Arguments
boolean_expression
Platný Booleovský výraz.
Pokud tento argument není booleovským výrazem, vzniká syntaktická chyba.
true_value
Hodnota k vrácení, pokud boolean_expression vyhodnotí jako pravda.
false_value
Hodnota k vrácení, pokud boolean_expression vyhodnocuje jako nepravdivá.
Návratové typy
Vrátí datový typ s nejvyšší předností z typů v true_value a false_value. Další informace naleznete v tématu priorita datových typů (Transact-SQL).
Poznámky
IIF je zkratka pro zápis výrazu CASE. Vyhodnotí Booleovský výraz přijatý jako první argument a poté vrátí jeden z dalších dvou argumentů na základě výsledku vyhodnocení. To znamená, že true_value se vrátí, pokud je Booleovský výraz pravdivý, a false_value se vrátí, pokud je Booleovský výraz nepravdivý nebo neznámý. true_value a false_value mohou být jakéhokoliv typu. Stejná pravidla, která platí pro CASE výraz pro Booleovské výrazy, zpracování nullů a typy returnů, platí i pro IIF. Pro více informací viz CASE (Transact-SQL).
Fakt, že je IIF přeložen do CASE, má také vliv na další aspekty chování této funkce. Protože CASE výrazy lze vnořit pouze do úrovně 10, mohou být vnořeny i příkazy IIF pouze do maximální úrovně 10. IIF je také vzdáleně přenášen na jiné servery jako sémanticky ekvivalentní CASE výraz, se všemi chováními vzdáleného CASE výrazu.
IIF není podporován v dedikovaných SQL poolech v Azure Synapse Analytics.
Examples
A. Jednoduchý příklad IIF
DECLARE @a INT = 45, @b INT = 40;
SELECT [Result] = IIF( @a > @b, 'TRUE', 'FALSE' );
Tady je soubor výsledků.
Result
--------
TRUE
B. IIF s nulovými konstantami
SELECT [Result] = IIF( 45 > 30, NULL, NULL );
Výsledkem tohoto tvrzení je chyba.
C. IIF s nulovými parametry
DECLARE @P INT = NULL, @S INT = NULL;
SELECT [Result] = IIF( 45 > 30, @P, @S );
Tady je soubor výsledků.
Result
--------
NULL