J'ai récemment appris la disponibilité de la fonction IIF
dans SQL Server 2012. J'utilise toujours imbriqué CASE
dans mes requêtes. Je veux connaître le but exact de l'instruction IIF
et quand devrions-nous préférer utiliser IIF
par rapport à CASE
instruction dans la requête. J'utilise principalement CASE
imbriqué dans mes requêtes.
Merci pour toutes les entrées.
IIF
est identique à CASE WHEN <Condition> THEN <true part> ELSE <false part> END
. Le plan de requête sera le même. Il s’agit peut-être du "sucre syntaxique" tel qu’implémenté initialement.
CASE est portable sur toutes les plateformes SQL alors que IIF est spécifique à SQL SERVER 2012+.
IIF est une fonction T-SQL non standard. Il a été ajouté à SQL SERVER 2012 pour permettre à Access de migrer vers SQL Server sans refactoriser à l'avance les IIF dans CASE. Une fois que la base de données Access est entièrement migrée vers SQL Server, vous pouvez la refactoriser.