Przykłady funkcji konkatenacji

Funkcji CONCAT() nie należy mylić ze słowem kluczowym skryptu CONCATENATE.

W najprostszej formie funkcja Concat() jest wykorzystywana do łączenia wartości/słów/selekcji w jeden ciąg znaków. Można ją jednak stosować na wiele sposobów przydatnych w rozwiązywaniu problemów. Wszystkie przykłady opierają się na następującej tabeli:

Prosta konkatenacja ciągu znaków

Jak wspomniano wcześniej, funkcja concat umożliwia połączenie listy wartości w ciąg znaków. Wartości te mogą być sztywno kodowane lub uzależnione od selekcji/danych.

=CONCAT(MyColumn,',')

=CONCAT(DISTINCT MyColumn,',')

Efektem tej prostej instrukcji concat byłoby połączenie wszystkich możliwych wartości z kolumny MyColumn. Można dodać słowo kluczowe DISTINCT. W rezultacie każda wartość w ciągu znaków jest wyświetlana tylko raz.

ABC,DEF,GHI,JKL,MNO,PQR,STU,VWX

Korzystając z prostej funkcji concat, można dodawać do funkcji wagę sortowania, aby uporządkować wartości ciągów znaków według wybranej kolumny. W poniższym przykładzie w celu posortowania wartości dodana jest kolumna daty.

 

=CONCAT(MyColumn, ',', Date)

Wynik: JKL,VWX,GHI,ABC,STU,PQR,MNO,DEF

Funkcja Concat() w obrębie instrukcji Set/wyrażenia

Przekazywanie wielu wartości dynamicznych do wyrażenia analizy zestawów

Istnieją sytuacje, w których pożądane jest przekazanie dynamicznej selekcji wartości do instrukcji set. W tym celu należy dodać do ciągu znaków pojedyncze cudzysłowy, aby funkcja CONCAT() zwróciła takie wartości, jak: 'JKL','VWX'. Nie można jednak po prostu dodać pojedynczych cudzysłowów, ponieważ zostałyby zinterpretowane podczas dokonywania oceny funkcji Concat, a nie podczas dokonywania oceny wyrażenia set. Zamiast tego należy użyć funkcji Chr():

 

=CONCAT(Chr(39)&MyColumn&Chr(39),',')

Następnie można przekazać tę instrukcję concat do środka wyrażenia:

 

=Sum({<MyColumn={$(=CONCAT(Chr(39)&MyColumn&Chr(39),','))}>} Value)

W większości przypadków technika ta jest przydatna w przypadku występowania wysp danych. Umożliwia ona przekazywanie do wyrażenia wartości, które nie wpłyną na żadną część modelu danych, ponieważ tabela wyspy danych nie jest do niego dołączona.

Funkcja Concat() w skrypcie

Funkcji Concat można także użyć w skrypcie do konwertowania wielu wierszy w jedną wartość pojedynczej kolumny — tak samo jak w przypadku każdej innej agregacji.

Wynik funkcji CONCAT w skrypcie wygląda następująco (przy uwzględnieniu źródła danych, jakiego wcześniej użyto):

Poniżej przedstawiono wynik tej funkcji skryptu:

Korzystanie z funkcji Rank() celem wywarcia wpływu na funkcję Concat()

Zastosowanie innych funkcji w połączeniu z funkcją concat() zapewnia uzyskiwanie jeszcze lepszych rezultatów. W tym przypadku użyto funkcji Rank() w celu pobrania trzech pól o najwyższych wartościach (na podstawie pola Value) i połączenia ich w jeden ciąg znaków.

 

=CONCAT(IF(aggr(Rank(sum(Value)),MyColumn)<=3,MyColumn),',')

Wynik: ABC,MNO,STU