SQL Server 2012 Comment utiliser la fonction logique IIF ()

SQL Server 2012 a introduit la nouvelle fonction logique IIF (). Le comportement de la fonction IIF () est assez similaire aux instructions CASE et IF dans SQL Server. Avec IIF (), vous pouvez utiliser moins de lignes de code et votre code sera plus lisible.

Explorons la fonction IIF () avec quelques exemples.

IIF () - Function renvoie l'une des deux valeurs, selon que l'expression booléenne spécifiée est évaluée à true ou à false.

Syntaxe: IIF (expression_booléenne, valeur_aux, valeur_faux)


• Le premier argument (expression_booléenne) accepte l'expression booléenne à évaluer.
• Function renvoie le deuxième argument (true_value), si l'expression booléenne est évaluée à true.
• La fonction retournera le troisième argument (false_value) signifie que l'expression booléenne a échoué.

Voyons quelques requêtes SQL rapides avec la fonction IIF ()

Exemple 1.1: Comparer deux nombres avec IIF ()

SELECT IIF (1> 0, 'Vrai', 'Faux') AS 'Sortie' GO Sortie ------ Vrai


Exemple 1.2: Comparer deux dates avec IIF ()

SELECT IIF ('10 / 15/2012 '> '01 / 01/2012', 'Oui', 'Non') AS 'Sortie' GO Sortie ------ Oui


Exemple 1.3: Comparer deux variables entières avec IIF ()

DECLARE @ num1 AS INT = 150 DECLARE @ num2 AS INT = 100 SELECT IIF (@ num1 <@ num2, 'True', 'False') AS 'Output' GO Sortie ------ False


Exemple 1.4: Compare deux chaînes avec IIF ()
La plupart d'entre vous se demandent pourquoi nous devrions utiliser IIF () sur les instructions CASE et IF.

IIF () semble plus lisible, est plus simple à fabriquer et comporte moins de lignes de codes que les instructions CASE et IF.

Comparons les différentes méthodes de comparaison de deux chaînes en utilisant les fonctions IF, CASE et IIF ().

DECLARE @str as varchar (20) = 'recettes-techniques' si (@str = 'recettes-techniques'), sélectionnez 'Oui' COMME 'OUTPUT' SAUF sélectionnez 'Non' COMME 'OUTPUT' GO OUTPUT ------ Oui
DECLARE @str AS varchar (20) = 'recettes-techniques', sélectionnez CASE lorsque @ str = 'recettes-techniques' ALORS 'Oui' SINON 'Non' FIN 'Comme' Sortie 'GO OUTPUT ------ Oui
DECLARE @str as varchar (20) = 'recettes-techniques' sélectionnez IIF (@str = 'recettes-techniques', 'oui', 'non') en tant que OUTPUT GO OUTPUT ------ Oui


Les trois requêtes ci-dessus utilisant IF, CASE et IIF () fonctionnent de la même manière et donnent le même résultat. Cependant, utiliser IIF () est plus facile et plus lisible.