Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
SQL-adatbázis a Microsoft Fabricben
Két érték egyikét adja vissza, attól függően, hogy a Boole-kifejezés az SQL Serverben igaz vagy hamis értéket kap-e.
Transact-SQL szintaxis konvenciók
Szemantika
IIF( boolean_expression, true_value, false_value )
Arguments
boolean_expression
Egy érvényes Boole-kifejezés.
Ha ez az érv nem boole-kifejezés, akkor szintaxishiba merül fel.
true_value
Érték, amit vissza kell hozni, ha boolean_expression igaznak értékeli.
false_value
Érték, amit vissza kell adni, ha boolean_expression hamisnak értékelik.
Visszatérési típusok
A true_value és false_value típusok közül a legmagasabb prioritású adattípust adja vissza. További információ: Adattípus elsőbbsége (Transact-SQL).
Megjegyzések
Az IIF egy rövidítési módja a CASE kifejezés megírásának. Értékeli az első érvként átadott Boole-kifejezést, majd az értékelés eredménye alapján a másik két érvet adja vissza. Vagyis a true_value akkor jelenik meg, ha a Boole-kifejezés igaz, és a false_value akkor jelenik meg, ha a Boole-kifejezés hamis vagy ismeretlen. true_value és false_value bármilyen típus lehet. Ugyanazok a szabályok, amelyek a CASE kifejezésre vonatkoznak a Boolean kifejezésekre, null kezelésre és visszaküldési típusokra, az IIF-re is érvényesek. További információért lásd CASE (Transact-SQL).
Az a tény, hogy az IIF CASE-re fordítódik, hatással van a funkció viselkedésének más aspektusaira is. Mivel a CASE kifejezések csak 10-es szintig lehet beágyazni, az IIF utasításokat is csak a maximális 10-es szintig lehet beágyazni. Az IIF más szerverekhez is távolról van kapcsolva, mint szemantikailag ekvivalens CASE kifejezés, minden viselkedéssel, mint egy távoli CASE kifejezés.
Az IIF nem támogatott dedikált SQL poolokban az Azure Synapse Analytics-ben.
Példák
A. Egyszerű IIF példa
DECLARE @a INT = 45, @b INT = 40;
SELECT [Result] = IIF( @a > @b, 'TRUE', 'FALSE' );
Itt van az eredmények összessége.
Result
--------
TRUE
B. IIF NULL állandókkal
SELECT [Result] = IIF( 45 > 30, NULL, NULL );
Ennek az állításnak az eredménye egy hiba.
C. IIF NULL paraméterekkel
DECLARE @P INT = NULL, @S INT = NULL;
SELECT [Result] = IIF( 45 > 30, @P, @S );
Itt van az eredmények összessége.
Result
--------
NULL