SQL Server 2012: IIF
Olá pessoal,
No SQL Server 2012, possuímos uma nova função chamada de IIF. Essa função tem o seu proposito bastante simples que é: Retornar um valor dentro de uma cadeia de dois valores que dependendo da expressão avaliada pode ser retornada como verdadeira ou falsa.
Atualmente no SQL Server 2008 possuímos a função IF que apenas realiza uma determinada validação que foi proposta e dependendo da validação pode entrar dentro de uma batch ou não de consultas. A grande diferença entre as duas é que com o IIF do SQL Server 2012 é que dois valores podem ser especificados, mas apenas um único valor será retornado como resultado, já o IF que possuímos no SQL Server 2008 e ainda possuímos no SQL Server 2012 valida uma determinada condição e pode retornar ou não resultado ou pode executar uma ou mais linhas de código.
Vamos então a demonstração.
A expressão IIF é denominada pela seguinte sintaxe.
IIF (Expressão Booleana, Valor Verdadeiro, Valor Falso)
logo poderíamos realizar algo do tipo.
SELECT IIF(‘MARCOS’ = ‘FRECCIA’,’TRUE’,’FALSE’)
Como podemos ver, aqui também é possível realizar a verificação entre valores texto, e o resultado não necessariamente necessita ser um valor texto, podendo ser números.
SELECT IIF(‘MARCOS’ = ‘FRECCIAs’,0,1)
Ou ainda podemos criar algo mais personalizado.
declare @Expressao1 varchar(30) = ‘SQL Server 2008 R2’
declare @Expressao2 varchar(30) = ‘SQL Server 2012’
select IIF(@Expressao1 = @Expressao2, ‘Os Valores Comparados’ + QUOTENAME(@Expressao1) + ‘ e ‘ + QUOTENAME(@Expressao2)
+ ‘ são iguais’,’Os Valores Comparados ‘ + QUOTENAME(@Expressao1) + ‘ e ‘ + QUOTENAME(@Expressao2) + ‘ são diferentes’)
Como podem ver pessoal, podemos trabalhar com diversos tipos de dados, onde não importa ser estamos comparando valores texto e retornando valores numéricos para a tela.
O que eu tinha para mostrar para vocês era isso. Espero que tenham gostado.
Abraços,
Marcos Freccia
[MCTS|MCITP|MCT SQL Server 2008]
Posted on August 1, 2012, in Desenvolvimento, SQL Server 2012, VirtualPass and tagged IIF, SQL Server 2012. Bookmark the permalink. 1 Comment.
Pingback: Melhorias no SQL Server 2012 « Alex Souza