SQL para Marketing Cloud - explorando a instrução CASE
- Juan Juan
- 1 de set. de 2023
- 4 min de leitura
Atualizado: 22 de set. de 2023

Olá Trailblazer!
No artigo de hoje, complementando o artigo sobre SQL básico para Marketing Cloud, exploraremos a instrução CASE e como utiliza-la no seu dia-a-dia no Marketing Cloud. Ela te ajudará a montar queries mais ricas e segmentações cada vez mais precisas. Se você ainda não leu o artigo de SQL básico, recomendo fazê-lo antes de prosseguir com este.
Essa instrução é uma ferramenta muito poderosa no SQL, especialmente quando se trata de análise de dados, criando critérios de decisão em uma visão mais individual de forma precisa e flexível.
Instrução CASE
Se você tem o conhecimento básico de programação e lógica condicional IF/ELSE, a instrução CASE é fichinha! Ela nos permite realizar avaliações e tomar decisões com base em valores de colunas ou expressões, além de ser muito útil para criar campos calculados ou segmentar dados com base em critérios específicos pré definidos.
No Marketing Cloud, essa instrução é especialmente útil quando você deseja selecionar uma coluna e modificar os valores dentro dela. Também é perfeita para traduzir códigos numéricos em códigos descritivos para fins de personalização, padronizar dados em uma extensão de dados e classificação de registros.
Vamos a um exemplo prático de utilização básica da instrução CASE:
"Juan é desenvolvedor de Marketing em uma empresa de varejo. A equipe comercial deseja segmentar a base de clientes que realizam compras no site em 5 níveis: Não compradores, Bronze, Prata, Ouro e Platina. Esse nível de comprador deve possuir os valores acima levando em consideração a coluna Qtd_Compras (coluna numérica), que representa a quantidade de produtos que os clientes compraram no site da empresa. A equipe comercial deseja ter essa informação presente em uma coluna específica para realizar tratamentos mais personalizados para clientes "premium" - níveis Ouro e Platina. A equipe comercial indicou que os níveis indicados acima devem ter a seguinte relação entre níveis de cliente x quantidade de itens comprados: Não compradores - 0, Bronze - 1, Prata - 2, Ouro - 3 a 5 e Platina - mais que 5 produtos comprados."
A partir do exemplo acima, conseguimos utilizar a instrução CASE do SQL para segmentar os clientes e popular a nova coluna Nivel_Cliente usando do código abaixo:
SELECT
Nome,
Sobrenome,
Email,
Qtd_Compras,
CASE
WHEN Qtd_Compras = 0 THEN 'Não Compradores'
WHEN Qtd_Compras = 1 THEN 'Bronze'
WHEN Qtd_Compras = 2 THEN 'Prata'
WHEN Qtd_Compras >= 3 AND Qtd_Compras <= 5 THEN 'Ouro'
WHEN Qtd_Compras > 5 THEN 'Platina'
END AS Nivel_Cliente
From [Base_Compra_Clientes]
Podemos observar que a instrução CASE exige que declaremos o nome da coluna que irá armazenar as respostas das condições a partir da instrução END AS. Esse detalhe é extremamente importante para desenvolvermos essa instrução da maneira correta.
É importante pontuar que a instrução CASE retorna o valor THEN da primeira condição avaliada como verdadeira, por isso, sempre considere a ordem das condições da sua instrução CASE, pois você pode se deparar com algum comportamento inesperado.
Você acha que parou por aqui? Achou errado! 😂
Conseguimos construir condições complexas usando outras instruções do SQL dentro de um critério de comparação em uma linha WHEN como AND, OR, NOT NULL, LIKE e até mesmo outra instrução CASE. O céu é o limite quando desenvolvemos essas instruções mais avançadas do SQL!
Vale ressaltar que assim como a estrutura condicional IF, a instrução CASE do SQL também tem a condição ELSE para redirecionar os registros que não atenderam a nenhum critério de WHEN pré configurado, abaixo apresentamos um exemplo prático de sua utilização:
SELECT
ID,
Email,
Status_Lead,
CASE
WHEN Status_Lead = 'Ativo' THEN 'True'
ELSE 'False'
END AS Enviavel
FROM [Base_Clientes]
No exemplo acima, armazenamos o valor Verdadeiro no campo 'Enviavel' quando o Status do Lead for 'Ativo', e caso seja qualquer outro valor, armazenamos o valor 'Falso', indicando que aquele Lead não esta ativo e consequentemente não poderá receber comunicações.
Quando temos instruções CASE básicas, possuindo apenas um critério de comparação como o apresentado no exemplo acima, podemos optar por utilizar a instrução IIF, abaixo apresentamos como que ficaria o código acima utilizando o IIF em vez do CASE:
SELECT
ID,
Email,
Status_Lead,
IIF(Status_Lead = 'Ativo','True','False') AS Enviavel
FROM [Base_Clientes]
Bem mais simples, não acha?!
A prática leva a perfeição!
Eu sei que, à primeira vista, pode ter parecido que você acabou de ler um texto em grego, mas não desanime! Você só conseguirá ter proficiência na linguagem SQL mediante muito treinamento e análise de códigos. Minha maior dica para você (assim como Bruna também recomendou no artigo de SQL básico): PRATIQUE!
Use e abuse dos dados que você tem disponíveis para treinar diferentes tipos de segmentos e analisar dados para entender todo o poder da função CASE dentro do seu sistema. Os dados são o novo petróleo, mas só consegue enxergar valor neles quem consegue manipulá-los a seu favor! Portanto, não deixe de praticar, praticar e praticar! Hoje, esses conceitos técnicos podem parecer outra língua para você, mas tenho certeza de que, praticando e desenvolvendo queries todos os dias um pouquinho, daqui a algumas semanas ou meses você já estará codando de olhos fechados! 😉
Comments