Nas condições de filtragem, é necessário vincular dois valores usando um operador.
Abaixo está uma lista dos operadores disponíveis:
Operador |
Finalidade |
Exemplo |
---|---|---|
Equal to |
Retorna um resultado idêntico aos dados inseridos na segunda coluna de valor. |
Last name (@lastName) equal to 'Jones', retornará apenas destinatários cujo sobrenome seja Jones. |
Greater than |
Retorna um valor maior que o valor digitado. |
Age (@age) greater than 50, retornará todos os valores maiores que '50', ou seja, '51', '52' etc. |
Less than |
Retorna um valor menor que o valor digitado. |
Creation date (@created) before 'DaysAgo(100)', retornará todos os destinatários criados menos de 100 dias atrás. |
Greater than or equal to |
Retorna todos os valores iguais ou maiores que o valor digitado. |
Age (@age) greater than or equal to '30’, retornará todos os destinatários maiores de 30 anos ou mais. |
Less than or equal to |
Retorna todos os valores iguais ou inferiores ao valor inserido. |
Age (@age) less than or equal to '60', retornará todos os destinatários com 60 anos ou menos. |
Not equal to |
Retorna todos os valores não idênticos ao valor inserido. |
Language (@language) to equal to 'English'. |
Starts with |
Retorna os resultados iniciando com o valor inserido. |
Account # (@account) starts with '32010'. |
Does not start with |
Retorna os resultados que não começam com o valor inserido |
Account # (@account) does not start with '20'. |
Contains |
Retorna os resultados contendo pelo menos o valor inserido. |
Email domain (@domain) contains 'mail' retornará todos os nomes de domínio que contêm 'mail’. Assim, o domínio "gmail.com" também será retornado. |
Does not contain |
Retorna resultados não contendo o valor digitado. |
Email domain (@domain) does not contain 'vo'. Nesse caso, nomes de domínio que contêm 'vo' não serão retornados. O nome de domínio 'voila.fr' não aparecerá nos resultados. |
Like |
Like é muito semelhante ao operador Contains. Ele permite inserir um caractere curinga % no valor. |
Last name (@lastName) like 'Jon%s'. Aqui, o caractere curinga é usado como "joker" para localizar o nome "Jones", o operador esqueceu a letra ausente entre o 'n' e o 's'. |
Not like |
É semelhante a Like. Permite que você não recupere o valor inserido. Aqui o valor inserido também deve conter o caractere curinga %. |
Last name (@lastName) not like 'Smi%h'. Aqui, os destinatários que têm 'Smi%h' como sobrenome não serão retornados. |
Is empty |
Nesse caso, o resultado que estamos procurando corresponde a um valor vazio na segunda coluna de valor. |
Mobile (@mobilePhone) is empty retorna todos os destinatários que não têm número de celular. |
Is not empty |
Funciona de forma inversa ao operador Is empty. Não é necessário inserir dados na segunda coluna de valor. |
Email (@email) is not empty. |
Is included in |
Retorna resultados incluídos nos valores indicados. Esses valores devem ser separados por vírgula. |
Birth date (@birthDate) is included in '12/10/1979,12/10/1984' retornará os destinatários nascidos entre essas datas. |
Is not included in |
Funciona como o operador Is included in. Aqui, queremos excluir destinatários com base nos valores inseridos. |
Birth date (@birthDate) is not included in '12/10/1979,12/10/1984'. Ao contrário do exemplo anterior, os destinatários nascidos nessas datas não serão retornados. |
Para queries usando várias condições de filtragem, você precisa definir links entre as condições. Há três links possíveis:
Clique em And (oferecido por padrão) e escolha na lista suspensa.
And: adiciona uma condição e permite a filtragem excessiva.
Or: adiciona uma condição e permite a filtragem excessiva.
O exemplo a seguir permite localizar destinatários cujo domínio de email contenha "orange.co.uk" ou cujo código postal começa com "NW".
Except: se você tiver dois filtros e o primeiro não retornar um valor, esse tipo de vínculo criará uma exceção.
No exemplo a seguir, queremos retornar destinatários cujo domínio de email contenha "orange.co.uk", exceto se o sobrenome do destinatário for "Smith".
Este exemplo mostra um filtro que permite exibir: destinatários que falam espanhol, ou que são mulheres com números de celular, ou ainda destinatários sem um número de conta e cujo nome da empresa começa com a letra "N".
Esta seção explica como priorizar condições com ajuda das setas azuis na barra de ferramentas.
A seta apontando para a direita permite adicionar um nível de parênteses ao filtro.
A seta apontando para a esquerda permite excluir um nível de parêntese selecionado do filtro.
As setas verticais permitem mover uma condição, alterando assim sua sequência de execução.
Este exemplo mostra como usar a seta para excluir um nível de parênteses. Comece a partir da seguinte condição de filtragem: City equal to London OR gender equal to male and mobile not indicated OR account # starts with “95” and company name starts with “A”.
Coloque o cursor na condição de filtragem Gender (@gender) equal to Male e clique na seta Remove a parenthesis level.
A condição Gender (@gender) equal to Male foi retirada dos parênteses. Ela foi movida para o mesmo nível da condição "Cidade igual a Londres". Essas condições são vinculadas entre si (And).
Os campos disponíveis variam de uma tabela para outra. Todos os campos são armazenados em um nó principal conhecido como Main element. No exemplo a seguir, os campos disponíveis estão na tabela de destinatários. Os campos são sempre exibidos em ordem alfabética.
O detalhe do campo selecionado é visível na parte inferior da janela. Por exemplo, o campo Email domain é um Calculated SQL field e sua extensão é (@domain).
Use a ferramenta Search para localizar um campo disponível.
Clique duas vezes em um campo disponível para adicioná-lo às colunas de saída. No final da query, cada campo selecionado cria uma coluna na janela Data preview.
Campos avançados não são exibidos por padrão. Clique em Display advanced fields no canto inferior direito dos campos disponíveis para exibir tudo. Clique novamente para retornar ao modo de exibição anterior.
Por exemplo, na tabela de recipients, os campos avançados são Boolean 1, Boolean 2, Boolean 3, Foreign key of “Folder” link etc.
O exemplo a seguir mostra os campos avançados da tabela de destinatários.
As várias categorias de campos:
Ícone |
Descrição |
Exemplos |
---|---|---|
![]() |
Campo simples |
Email, sexo, etc. |
![]() |
Chave primária. Este campo SQL é uma maneira de identificar um registro em uma tabela. |
Os destinatários do identificador são chaves primárias e os identificadores são exclusivos por definição. |
![]() |
Chave externa. Usado como um link para outra tabela. |
Chave externa do destinatário, chave externa de serviço etc. |
![]() |
Campo calculado. Esse tipo de campo é calculado mediante solicitação usando os valores no banco de dados. |
Idade, domínio de email etc. |
![]() |
Campo contendo textos longos. |
Comentário, endereço completo etc. |
![]() |
Campo SQL indexado. |
Nome completo, código ISO etc. |
Vincular a uma tabela e elemento de coleção:
Ícone |
Descrição |
Exemplo |
---|---|---|
![]() |
Vincular a uma tabela em particular. Eles coincidem com as associações de tipo 1-1. Uma ocorrência da tabela de origem pode coincidir com apenas uma ocorrência da tabela de target. Por exemplo, somente um destinatário pode ser vinculado a um país. |
Pasta, Estado, País etc. |
![]() |
Elemento de coleção em uma tabela específica. Eles correspondem com associações de tipo 1-N. Uma ocorrência da tabela de origem pode coincidir com várias ocorrências da tabela de destino, mas uma ocorrência da tabela de destino pode coincidir com apenas uma ocorrência da tabela de origem. Por exemplo, um destinatário pode assinar cartas de assinatura 'n'. |
Assinaturas, listas, logs de exclusão etc. |
Se necessário, adicione uma coluna durante a formatação de dados. Um campo calculado adiciona uma coluna à seção de visualização de dados. Clique em Add a calculated field.
Existem quatro tipos de campos calculados:
Fixed string: permite adicionar uma string.
String with JavaScript tags: o valor do campo calculado combina uma string e diretivas JavaScript.
JavaScript expression: o valor do campo calculado é o resultado de uma avaliação de função JavaScript. O valor retornado pode ser digitado (número, data etc.).
Enumerations: esse tipo de campo permite usar/modificar o conteúdo de uma das colunas de saída em uma nova coluna.
É possível usar o valor de origem de uma coluna e fornecer um valor de destino. Esse valor de destino será exibido na nova coluna de saída.
Há um exemplo de adição do tipo de campo calculado Enumerations nesta seção.
O tipo de campo calculado Enumerations pode incluir quatro condições:
Clique em Detail of calculated field para exibir os detalhes do campo inserido.
Para remover esse campo calculado, clique na cruz Remove the calculated field.
A ferramenta de edição de expressão permite calcular agregações, gerar funções ou editar uma fórmula usando uma expressão.
O exemplo a seguir mostra como executar uma contagem em uma chave primária.
Siga as etapas abaixo:
Clique em Add na janela Data to extract. Na janela Formula type, selecione um tipo de fórmula para inserir a expressão.
Há vários tipos de fórmulas disponíveis: Field only, Aggregate, Expression.
Selecione Process on an aggregate function, Count e clique em Next.
A chave primária é calculada.
Veja a seguir uma exibição detalhada das opções disponíveis na janela Formula types:
Field only permite retornar à janela Field to select.
Aggregate (Process on an aggregate function). Veja alguns exemplos de uso agregado:
Count permite executar uma contagem de chaves primárias.
Sum permite somar todas as compras feitas por um cliente no período de um ano.
Maximum value permite encontrar os clientes que compraram mais produtos "n".
O Minimum value permite classificar os clientes e encontrar aqueles que se subscreveram para uma oferta mais recentemente.
Average. Essa função permite calcular a idade média dos destinatários.
A caixa Distinct permite recuperar valores exclusivos e diferentes de zero em uma coluna. Por exemplo, é possível recuperar todos os logs de rastreamento de um destinatário; eles são alterados para o valor 1, desde que sejam todos referentes ao mesmo destinatário.
Expression abre a janela Edit the expression. Isso permite detectar números de telefone com muitos numerais, provavelmente devido a erros de entrada.
Para obter uma lista de todas as funções disponíveis, consulte Lista de funções.
Se uma fórmula do tipo Expression for escolhida, você será direcionado à janela "edit the expression". É possível associar várias categorias de funções aos campos disponíveis: Aggregates, String, Date, Numerical, Currency, Geomarketing, Windowing function e Others.
O editor de expressão tem esta aparência:
Ele permite selecionar campos nas tabelas do banco de dados e adicionar funções avançadas a eles. Os recursos abaixo estão disponíveis.
Agregados
Nome |
Descrição |
Sintaxe |
Avg |
Retorna a média de uma coluna do tipo número |
Avg(<value>) |
Contagem |
Conta os valores não nulos de uma coluna |
Count(<value>) |
CountAll |
Conta os valores retornados (todos os campos) |
CountAll() |
Countdistinct |
Conta os valores não nulos distintos de uma coluna |
Countdistinct(<value>) |
Max |
Retorna o valor máximo de uma coluna, string ou coluna de tipo de data |
Max(<value>) |
Min |
Retorna o valor mínimo de uma coluna do tipo número, string ou dados |
Min(<value>) |
StdDev |
Retorna o desvio padrão de uma coluna do tipo número, string ou dados |
StdDev(<value>) |
Sum |
Retorna a soma dos valores de uma coluna do tipo número, string ou dados |
Sum(<value>) |
String
Nome |
Descrição |
Sintaxe |
AllNonNull2 |
Indica se todos os parâmetros são não nulos e não estão vazios |
AllNonNull2(<string>, <string>) |
AllNonNull3 |
Indica se todos os parâmetros são não nulos e não estão vazios |
AllNonNull3(<string>, <string>, <string>) |
Ascii |
Retorna o valor ASCII do primeiro caractere na string. |
Ascii(<string>) |
Char |
Retorna o caractere correspondente ao código ASCII 'n' |
Char(<number>) |
Charindex |
Retorna a posição da string 2 na string 1. |
Charindex(<string>, <string>) |
GetLine |
Retorna a linha enésima (de 1 a n) da string |
GetLine(<string>) |
IfEquals |
Retorna o terceiro parâmetro se os dois primeiros parâmetros forem iguais. Caso contrário, retorna o último parâmetro |
IfEquals(<string>, <string>, <string>, <string>) |
IsMemoNull |
Indica se o memorando passado como parâmetro é nulo |
IsMemoNull(<memo>) |
JuxtWords |
Concatena a string transmitidas como parâmetros. Adiciona espaços entre a string, se necessário. |
JuxtWords(<string>, <string>) |
JuxtWords3 |
Concatena a string transmitidas como parâmetros. Adiciona espaços entre a string, se necessário |
JuxtWords3(<string>, <string>, <string>) |
LPad |
Retorna a string concluída à esquerda |
LPad(<string>, <number>, <character>) |
Left |
Retorna os primeiros n caracteres da string |
Left(<string>, <number>) |
Length |
Retorna o comprimento da string |
Length(<string>) |
Lower |
Retorna a string em minúsculas |
Lower(<string>) |
Ltrim |
Remove espaços à esquerda da string |
Ltrim(<string>) |
Md5Digest |
Retorna uma representação hexadecimal da chave MD5 de uma string |
Md5Digest(<string>) |
MemoContains |
Especifica se o memorando contém a string aprovada como um parâmetro |
MemoContains(<memo>, <string>) |
RPad |
Retorna a string concluída à direita |
RPad(<string>, <number>, <character>) |
Right |
Retorna os últimos n caracteres da string |
Right(<string>) |
Rtrim |
Remove espaços à direita da string |
Rtrim(<string>) |
Smart |
Retorna a string com a primeira letra de cada palavra em maiúsculas |
Smart(<string>) |
Substring |
Extrai a substring iniciando no caractere n1 da cadeira de caracteres e de comprimento n2 |
Substring(<string>, <offset>, <length>) |
ToString |
Converte o número em uma string |
ToString(<number>, <number>) |
Upper |
Retorna a string em maiúsculas |
Upper(<string>) |
VirtualLink |
Retorna a chave externa de um link passado como um parâmetro se os outros dois parâmetros forem iguais |
VirtualLink(<número>, <número>, <número>) |
VirtualLinkStr |
Retorna a chave externa (texto) de um link passado como um parâmetro se os outros dois parâmetros forem iguais |
VirtualLinkStr(<string>, <number>, <number>) |
dataLength |
Retorna o tamanho da string |
dataLength(<string>) |
Data
Nome |
Descrição |
Sintaxe |
AddDays |
Adiciona um número de dias a uma data |
AddDays(<data>, <número>) |
AddHours |
Adiciona um número de horas a uma data |
AddHours(<data>, <número>) |
AddMinutes |
Adiciona um número de minutos a uma data |
AddMinutes(<data>, <número>) |
AddMonths |
Adiciona um número de meses a uma data |
AddMonths(<data>, <número>) |
AddSeconds |
Adiciona um número de segundos a uma data |
AddSeconds(<data>, <número>) |
AddYears |
Adiciona um número de anos a uma data |
AddYears(<data>, <número>) |
DateOnly |
Retorna somente a data (com a hora 00:00)* |
DateOnly(<date>) |
Day |
Retorna o número que representa o dia da data |
Day(<data>) |
DayOfYear |
Retorna o número do dia no ano da data |
DayOfYear(<date>) |
DaysAgo |
Retorna a data correspondente à data atual menos n dias |
DaysAgo(<number>) |
DaysAgoInt |
Retorna a data (inteiro aaaammdd) correspondente à data atual menos n dias |
DaysAgoInt(<number>) |
DaysDiff |
Número de dias entre duas datas |
DaysDiff(<data final>, <data inicial>) |
DaysOld |
Retorna a idade em dias de uma data. |
DaysOld(<data>) |
GetDate |
Retorna a data atual do sistema do servidor. |
GetDate() |
Hour |
Retorna a hora da data. |
Hour(<data>) |
HoursDiff |
Retorna o número de horas entre duas datas |
HoursDiff(<end date>, <start date>) |
Minute |
Retorna os minutos da data |
Minute(<data>) |
MinutesDiff |
Retorna o número de minutos entre duas datas |
MinutesDiff(<data final>, <data inicial>) |
Month |
Retorna o número que representa o mês da data |
Month(<data>) |
MonthsAgo |
Retorna a data correspondente à data atual menos n meses |
MonthsAgo(<número>) |
MonthsDiff |
Retorna o número de meses entre duas datas |
MonthsDiff(<data final>, <data inicial>) |
MonthsOld |
Retorna a idade em meses de uma data |
MonthsOld(<data>) |
Second |
Retorna os segundos da data |
Second(<date>) |
SecondsDiff |
Retorna o número de segundos entre duas datas |
SecondsDiff(<data final>, <data inicial>) |
SubDays |
Subtrai um número de dias a partir de uma data |
SubDays(<data>, <número>) |
SubHours |
Subtrai um número de horas a partir de uma data |
SubHours(<data>, <número>) |
SubMinutes |
Subtrai um número de minutos de uma data |
SubMinutes(<data>, <número>) |
SubMonths |
Subtrai um número de meses a partir de uma data |
SubMonths(<data>, <número>) |
SubSeconds |
Subtrai um número de segundos a partir de uma data |
SubSeconds(<data>, <número>) |
SubYears |
Subtrai um número de anos a partir de uma data |
SubYears(<data>, <número>) |
ToDate |
Converte uma data + hora em uma data |
ToDate(<data + hora>) |
ToDateTime |
Converte uma string em uma data + hora |
ToDateTime(<string>) |
TruncDate |
Arredonda uma data e hora para o segundo mais próximo |
TruncDate(@lastModified, <número de segundos>) |
TruncDateTZ |
Arredonda uma data e hora para uma determinada precisão expressa em segundos |
TruncDateTZ(<data>, <número de segundos>, <fuso horário>) |
TruncQuarter |
Arredonda uma data para o trimestre |
TruncQuarter(<data>) |
TruncTime |
Arredonda a parte de horário para cima até o próximo segundo |
TruncTim(e<date>, <number of seconds>) |
TruncWeek |
Arredonda uma data para a semana |
TruncWeek(<data>) |
TruncYear |
Arredonda uma data + hora para 1º de janeiro do ano |
TruncYear(<date>) |
TruncWeek |
Retorna o número que representa o dia na semana da data |
WeekDay(<data>) |
Year |
Retorna o número que representa o ano da data |
Year(<data>) |
YearAnd Month |
Retorna o número que representa o ano e o mês da data. |
YearAndMonth(<data>) |
YearsDiff |
Retorna o número de anos entre as duas datas |
YearsDiff(<data final>, <data inicial>) |
YearsOld |
Retorna a idade em anos de uma data |
YearsOld(<date>) |
Observe que a função Dateonly considera o fuso horário do servidor e não do operador.
Numerical
Nome |
Descrição |
Sintaxe |
Abs |
Retorna o valor absoluto de um número |
Abs(<número>) |
Ceil |
Retorna o número inteiro mais baixo maior ou igual a um número |
Ceil(<número>) |
Floor |
Retorna o maior inteiro maior ou igual a um número |
Floor(<number>) |
Greatest |
Retorna o maior número de dois números |
Greatest(<número 1>, <número 2>) |
Least |
Retorna o menor de dois números |
Least(<número 1>, <número 2>) |
Mod |
Retorna o restante da divisão inteira de n1 por n2 |
Mod(<number 1>, <number 2>) |
Percent |
Retorna a proporção de dois números expressos como uma porcentagem |
Percent(<número 1>, <número 2>) |
Random |
Retorna o valor aleatório |
Random() |
Round |
Arredonda um número para decimais n |
Round(<número>, <número de decimais>) |
Sign |
Retorna o sinal do número |
Sign(<número>) |
ToDouble |
Converte um inteiro em um flutuante |
ToDouble(<número>) |
ToInt64 |
Converte um flutuante em um inteiro de 64 bits |
ToInt64(<número>) |
ToInteger |
Converte um flutuante em um inteiro |
ToInteger(<número>) |
Trunc |
Corta o n1 para o decimal n2 |
Trunc(<n1>, <n2>) |
Nome |
Descrição |
Sintaxe |
ConvertCurrency |
Converte uma quantia na moeda de origem em uma quantia na moeda de destino |
ConvertCurrency(<amount>, <source currency>, <target currency>, <conversion date>) |
FormatCurrency |
Formata a quantidade exibida com base nas configurações de moeda |
FormatCurrency(<amount>, <currency>) |
Geomarketing
Nome |
Descrição |
Sintaxe |
Distance |
Retorna a distância entre dois pontos definidos por sua longitude e latitude, expresso em graus. |
Distance(<Longitude A>, <Latitude A>, <Longitude B>, <Latitude B>) |
Outros
Nome |
Descrição |
Sintaxe |
Case |
Retorna o valor 1 se a condição for verdadeira. Caso contrário, retornará o valor 2. |
Case(When(<condition>, <value 1>), Else(<value 2>)) |
ClearBit |
Exclui o Sinalizador no valor |
ClearBit(<identificador>, <sinalizador>) |
Coalesce |
Retorna o valor 2 se o valor 1 for zero ou nulo, caso contrário retorna o valor 1 |
Coalesce(<valor 1>, <valor 2>) |
Decode |
Retorna o valor 3 se o valor 1 for igual ao valor 2. Caso contrário, retorna o valor 4. |
Decode(<value 1>, <value 2>, <value 3>, <value 4>) |
Else |
Retorna o valor 1 (só pode ser usado como parâmetro da função case) |
Else(<value 1>, <value 2>) |
GetEmailDomain |
Extrai o domínio de um endereço de email |
GetEmailDomain(<valor>) |
GetMirrorURL |
Recupera o URL do servidor da mirror page |
GetMirrorURL(<valor>) |
Iif |
Retorna o valor 1 se a expressão for verdadeira. Caso contrário, retorna o valor 2 |
Iif(<condition>, <value 1>, <value 2>) |
IsBitSet |
Indica se o Sinalizador está no valor |
IsBitSet(<identificador>, <sinalizador>) |
IsEmptyString |
Retorna o valor 2 se a string 1 estiver vazia, caso contrário, retorna o valor 3. |
IsEmptyString(<value 1>, <value 2>, <value 3>) |
NoNull |
Retorna a string vazia se o argumento for NULL. |
NoNull(<valor>) |
RowId |
Retorna o número da linha. |
RowId |
SetBit |
Força o Sinalizador no valor. |
SetBit(<identificador>, <sinalizador>) |
ToBoolean |
Converte um número em um booleano |
ToBoolean(<número>) |
When |
Retorna o valor 1 se a expressão for verdadeira. Se não, ele retorna o valor 2 (só pode ser usado como parâmetro da função case) |
When(<condition>, <value 1>) |
Funções janela
Nome |
Descrição |
Sintaxe |
Desc |
Aplica uma classificação decrescente |
Desc(<valor 1>) |
OrderBy |
Classifica o resultado dentro da partição |
OrderBy(<valor 1>) |
PartitionBy |
Partições do resultado de um query em uma tabela |
PartitionBy(<valor 1>) |
RowNum |
Gera um número de linha com base na partição da tabela e em uma sequência de classificação. |
RowNum(PartitionBy(<value 1>), OrderBy(<value 1>)) |