Utilizando CASE com IN no SQL Server

No SQL Server, é possível utilizar o recurso IN dentro de um Case.

Para ilustrar o exemplo, utilizamos o banco de dados Adventure Works 2008, e primeiro podemos observar o uso típico do case:

SELECT	ProductID, 
	Name, 
	Color,
	case Color 
	    when 'Red'    then 'Cor Primaria'
	    when 'Blue'   then 'Cor Primaria'
	    when 'Yellow' then 'Cor Primaria'
	    else 'Cor Secundaria'
	end as TesteCase
FROM	Production.Product
WHERE	Color is not null

Temos o seguinte resultado:

ScreenHunter_440 Jan. 17 08.49

Observamos que para o caso das cores serem Red, Blue e Yellow, os resultados seriam os mesmos.

Podemos fazer a alteração utilizando o comando IN dentro do Case, como o código seguinte:

SELECT	ProductID, 
	Name, 
	Color,
	case WHEN 
	    Color in ('Red','Blue','Yellow') then 'Cor Primaria'
	    else 'Cor Secundaria'
	end as TesteCase
FROM	Production.Product
WHERE	Color is not null

Observamos que conseguimos otimizar a escrita do código, não ficando tão repetitivo, tendo o mesmo resultado:

ScreenHunter_440 Jan. 17 08.49

Anúncios

Deixe um comentário

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 )

Foto do Google

Você está comentando utilizando sua conta Google. 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 )

Conectando a %s