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]

Sobre Marcos Freccia

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

Publicado em agosto 1, 2012, em Desenvolvimento, SQL Server 2012, VirtualPass e marcado como , . Adicione o link aos favoritos. 1 comentário.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: