SQL Server IIF vs CASE

Sql ServerSql Server-2012CaseIif

Sql Server Problem Overview


I recently came to know about the availability of IIF function in SQL Server 2012. I always use nested CASE in my queries. I want to know the exact purpose of the IIF statement and when should we prefer using IIF over CASE Statement in the query. I mostly use nested CASE in my queries.

Thanks for all the inputs.

Sql Server Solutions


Solution 1 - Sql Server

IIF is the same as CASE WHEN <Condition> THEN <true part> ELSE <false part> END. The query plan will be the same. It is, perhaps, "syntactical sugar" as initially implemented.

CASE is portable across all SQL platforms whereas IIF is SQL SERVER 2012+ specific.

Solution 2 - Sql Server

IIF is a non-standard T-SQL function. It was added to SQL SERVER 2012, so that Access could migrate to SQL Server without refactoring the IIF's to CASE before hand. Once the Access db is fully migrated into SQL Server, you can refactor.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionneophyteView Question on Stackoverflow
Solution 1 - Sql ServerKarl KieningerView Answer on Stackoverflow
Solution 2 - Sql Serveruser2505560View Answer on Stackoverflow