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’)

image

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)

image

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’)

image

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]

Advertisements

About Marcos Freccia

MVP em SQL Server (Data Plataform) , especialista em SQL Server, e atualmente trabalhando com Microsoft Azure!

Posted on August 1, 2012, in Desenvolvimento, SQL Server 2012, VirtualPass and tagged , . Bookmark the permalink. 1 Comment.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: