Quando vi no “Books Online” as funções IIF e CHOOSE para o SQL Server Denali CTP3, pensei de imediato que finalmente será possível substituir alguns “CASE WHEN THEN END” para algo mais limpo!
Mas antes de pensar em IIF() e CHOOSE(), um lembrete extremamente importante: ISNULL(), NULLIF() e CASE WHEN não morreram no SQL Server Denali, Amen!
Função IIF
Para mostrar como o código ficou mais limpo com IIF, abaixo exemplos da utilização do CASE e a mesma lógica com IIF:

Mas isso não quer dizer que as expressões ficaram restritas com IIF, exemplo:

(Os exemplos com EXISTS e COLLATE ficaram bizarros…)
Função CHOOSE
Também temos exemplos de código mais limpo com o uso de CHOOSE ao invés do tradicional CASE:

Note que assim como na utilização do CASE, o CHOOSE retorna NULL quando não existe uma alternativa válida como resultado:

Mas como não contamos com um ELSE na função CHOOSE, temos que utilizar um ISNULL para retornar um valor padrão nas situações que não possuem alternativa válida:

Recomendação
Por fim, não comece a substituir CASE e as funções ISNULL, NULLIF por CHOOSE e IIF só porque “fica mais bonito”.

1 Resposta para “SQL Server 2012 “Denali” CTP3 – Novas funções: IIF e CHOOSE”