Exemplos de funções Concat
A função CONCAT() deve ser confundida com a palavra-chave CONCATENATE no script.
Em sua forma mais simples, Concat() é usado para conectar/juntar valores/palavras/seleções em um caractere. No entanto, pode ser utilizada de diversas forma para ajudar a resolver diferentes problemas. Todos os exemplos são baseados na seguinte tabela:
Table | MyColumn | Date | Value |
---|---|---|---|
Data | JKL | 01/01/2012 | 11 |
Data1 | WVX | 01/02/2012 | 13 |
Data | GHI | 01/03/2012 | 13 |
Data | ABC | 01/04/2012 | 15 |
Data1 | STU | 01/05/2012 | 18 |
Data1 | PQR | 01/06/2012 | 10 |
Data1 | MNO | 01/07/2012 | 25 |
Data | DEF | 01/08/2012 | 11 |
Concatenação simples de caractere
Conforme mencionado anteriormente, a função concat permite que você conecte uma lista de valores. Esses valores podem ser de código fixo ou orientados por seleções/dados.
=CONCAT(MyColumn,',')
=CONCAT(DISTINCT MyColumn,',')
Esse comando concat simples conectaria todos os valores possíveis da coluna MyColumn. Você pode desejar adicionar a palavra-chave DISTINCT. Isso asseguraria que cada valor fosse exibido apenas uma vez na string:
ABC,DEF,GHI,JKL,MNO,PQR,STU,VWX
Ao usar um concat simples, você tem a opção de adicionar um peso de classificação à função para organizar os valores do caractere na coluna desejada. No exemplo abaixo, a coluna data é adicionada à classificação de valores.
=CONCAT(MyColumn, ',', Date)
Resultado: JKL,VWX,GHI,ABC,STU,PQR,MNO,DEF
Concat() dentro de um comando Expression/Set
Exemplo: Passando valores dinâmicos múltiplos para configurar uma expressão de análise
Há ocasiões em que você deseja passar uma seleção dinâmica de valores para configurar um comando. Para fazer isso, você precisa adicionar aspas simples ao caractere para que a função CONCAT() retorne, por exemplo: 'JKL','VWX'. Mas você não pode adicionar as aspas simples como elas são, uma vez que elas dessa forma poderiam ser interpretadas quando o Concat fosse avaliado em vez de quando a expressão definida fosse avaliada. Em vez disso, use a função Chr():
=CONCAT(Chr(39)&MyColumn&Chr(39),',')
Você pode passar o comando concat para dentro de uma expressão:
=Sum({<MyColumn={$(=CONCAT(Chr(39)&MyColumn&Chr(39),','))}>} Value)
Na maioria das vezes, essa técnica seria usada onde as ilhas de dados estão presentes. Ela deixa que você passe o valor para uma expressão que não afetará nenhuma parte do modelo de dados uma vez que a tabela da ilha de dados não foi juntada a ela.
Concat() no Script
Concat também pode ser usado no script para converter múltiplas linhas em um valor de coluna único, como qualquer outra agregação.
Lembrar dos dados fonte usados anteriormente, os resultados do lado do script CONCAT são os que seguem:
O seguinte é o resultado dessa função de script:
Table | CombinedData |
---|---|
Data | ABC,DEF,GHI,JKL |
Data1 | MNO,PQR,STU,WVX |
Usando Rank() para influenciar o Concat()
Quando você começa a utilizar outra função em conjunto com a concat(), você pode começar a alcançar resultados inteligentes. Neste exemplo, Rank() foi usado para juntar os três itens principais executados (baseado em Valor) e conectá-los.
=CONCAT(IF(aggr(Rank(sum(Value)),MyColumn)<=3,MyColumn),',')
Resultado: ABC,MNO,STU