De SQL IIF functie is de nieuwe ingebouwde Logische functie geà ntroduceerd in SQL Server 2012. We kunnen de SQL Server IIF beschouwen als de steno manier van het schrijven van IF Else, en CASE statements.
SQL Server IIF-functie accepteert drie argumenten. Het eerste argument is de Booleaanse uitdrukking, die true of false retourneert. Als de IIF-expressie waar is, wordt het tweede argument als resultaat geretourneerd. Anders zal het derde argument als uitvoer terugkeren., Gebruik:
De syntaxis van de IIF in SQL Server is als volgt:
IIF (Boolean_Expression, True_Value, Flase_Value)
als de gegeven Booleaanse expressie (of testvoorwaarde) waar is, geeft het True_Value terug. En als het onwaar is, dan zal False_Value worden geretourneerd.
SQL IIF het vergelijken van twee gehele getallen
Dit voorbeeld toont u de werkfunctionaliteit van de IIF-functie in SQL Server
SELECT IIF(10 > 5, 'TRUE', 'FALSE') AS Result;
in de onderstaande schermafbeelding kunt u die voorwaarde in de IIF-functie (d.w.z.,, 10 > 5) is waar. Dus, het eerste statement (of tweede argument) geretourneerd als output, Wat Waar is
SQL IIF Vergelijk twee integer variabelen
In dit voorbeeld gaan we de IIF-functie gebruiken om uit te vinden of de persoon in aanmerking komt om te stemmen of niet.
uit de onderstaande schermafbeelding kunt u zien dat
- binnen het eerste SELECT statement, voorwaarde binnen de IIF-functie (d.w.z. 12 > 18) onwaar is., Dus, het tweede statement (of derde argument) geretourneerd als output
- binnen het tweede SELECT statement, voorwaarde binnen de IIF functie (dat wil zeggen, 34 > 18) is waar. Dus, het eerste statement (of tweede argument) geretourneerd als output
SQL IIF Vergelijk twee strings
in dit voorbeeld gaan we de SQL Server IIF functie gebruiken om de string data te vergelijken. Hier hebben we de ‘ % ‘ Joker gebruikt in het tweede SELECT Statement., Dus, ik stel voor dat u verwijzen SQL Als artikel in SQL Server voor verdere referentie.
SQL geneste IIF voorbeeld
In dit voorbeeld gaan we de SQL Server geneste IIF functie gebruiken om uit te vinden of de persoon in aanmerking komt om te werken of niet.
- eerst hebben we een integer variabele genaamd @age gedeclareerd en een waarde toegewezen.
- binnen de functie IIF () controleert de eerste voorwaarde of de leeftijd minder dan 18 jaar is., Als deze voorwaarde True is, dan zal het het eerste statement (of tweede argument) na de komma retourneren, wat betekent dat je te jong bent om
- te werken als de eerste voorwaarde faalt, geeft het het tweede statement (of derde argument) terug. Door SQL Server geneste IIF te gebruiken, controleren we nog een voorwaarde (@age >= 18 en @age <= 60)., Als deze voorwaarde Waar is, dan retourneert het de eerste waarde na de komma, dat wil zeggen dat je in aanmerking komt om
- te werken als de geneste voorwaarde faalt, zal het de waarde uitvoeren bij het derde argument, dat is dat je te oud bent om te werken.,
UITGANG 1: Leeftijd = 12
Leeftijd = 32
Leeftijd = 65 jaar
SQL IIF Werken met NULL-waarden
Het beste zou zijn als je voorzichtig zijn, terwijl u werkt met NULL-waarden in de IIF-functie. Volgende reeks voorbeelden zal u helpen om de gevolgen te begrijpen.,
SELECT IIF(10 > 5, NULL, NULL) AS Result;
uit de bovenstaande schermafbeelding kunt u zien dat het een fout geeft. Zeggen dat ten minste één van de resultaatuitdrukking (dat wil zeggen, tweede of derde argument na de Boolean_Expression) een uitdrukking moet zijn anders dan de NULCONSTANTE., Laten we ze dienovereenkomstig wijzigen en zie
SELECT IIF(10 > 5, 'TRUE', NULL) AS Result1;SELECT IIF(10 > 5, NULL, 'FALSE') AS Result2;
SQL IIF NULL-waarden Optie 2
We kunnen de fouten die optraden door de NULL-constanten in de IIF-functie die de parameters gebruikt.
DECLARE @a INT = NULL, @b INT = NULL SELECT IIF ( 10 > 5, @a, @b ) AS Result1;
IIF gegevenstype met de hoogste prioriteit
de IIF-functie retourneert het gegevenstype met de hoogste prioriteit., Uit het volgende voorbeeld zal het resultaat het derde argument (d.w.z. 100) van het type integer zijn, maar het resultaat geeft 100.00 weer. Omdat de IIF-functie het gegevenstype met de hoogste voorrang retourneert.
SELECT IIF ( 15 > 50, 12.45, 100 ) AS Result;
zie Else and CASE Statement artikelen.