Gå till huvudinnehåll

Exempel på concat-funktioner

CONCAT()-funktionen ska inte förväxlas med CONCATENATE-nyckelordet i skriptet.

I sin enklaste form används Concat() för att koppla samman värden/ord/val i en enda sträng. Den kan dock användas på många olika sätt för att hjälpa dig lösa olika problem. Alla exemplen baseras på följande tabell:

Example string table data
Exempeltabell med strängdata
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

Enkel strängkonkatenering

Som vi nämnde tidigare kan concat-funktionen användas för att koppla samman värden i en lista. Värdena kan vara hårdkodade eller styras av val eller data.

=CONCAT(MyColumn,',')

=CONCAT(DISTINCT MyColumn,',')

Den här enkla concat-satsen kopplar samman alla möjliga värden från kolumnen MyColumn. Om du väljer att lägga till DISTINCT-nyckelordet Detta säkerställer att varje värde bara visas en gång i strängen:

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

När du använder ett enkelt concat kan du välja att lägga till en sorteringsvikt i funktionen för att ordna strängvärdena efter valfri kolumn. I exemplet nedan läggs datumkolumnen till för att sortera värdena.

=CONCAT(MyColumn, ',', Date)

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

Concat() inom ett uttryck eller en set-sats

Example: Vidarebefordra flera dynamiska värden till ett setanalys-uttryck

Det finns tillfällen då du vill skicka ett dynamiskt val av värden till en set-sats. För att göra detta måste du lägga till enkla citattecken i strängen så att funktionen CONCAT() returnerar exempelvis 'JKL','VWX'. Du kan dock inte använda de enkla citattecknen som de är eftersom de då tolkas när Concat evalueras, i stället för när set-uttrycket evalueras. Använd i stället funktionen Chr():

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

Du kan sedan lägga denna concat-sats så att den hamnar inuti ett uttryck:

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

I de flesta fall skulle denna teknik användas där det finns dataöar. Den låter dig skicka värden till ett uttryck som inte påverkar någon del av datamodellen eftersom tabellen för dataön inte är kopplad till den.

Concat() i skriptet

Concat kan också användas i skriptet för att omvandla flera rader till ett enda kolumnvärde, precis som med andra aggregeringar.

Med de källdata som användes tidigare blir resultatet av CONCAT i skriptet:

ConcatExample:
Load Table,
Concat(MyColumn,',') as CombinedData
Resident Temp
Group By Table;

Skriptfunktionen får följande resultat:

Exempel på utdata som tabell
Table CombinedData
Data ABC,DEF,GHI,JKL
Data1 MNO,PQR,STU,WVX

Använda Rank() för att påverka Concat()

När du använder andra funktioner i kombination med concat() kan du få riktigt avancerade resultat. I detta exempel har Rank() använts för att få tag i de tre bästa resultaten (baserat på värdet) och länka samman dem.

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

Resultat: ABC,MNO,STU

Join the Analytics Modernization Program

Modernize by leveraging your QlikView investment to begin using Qlik Sense on the Cloud.

Want to know more?
Remove banner from view