Gå till huvudinnehåll Gå till ytterligare innehåll

Load

I ett diagrammodifierande sammanhang laddar LOAD-satsen ytterligare data till hyperkuben från data definierade i skriptet eller från en tidigare laddad tabell. Det går även att ladda data från analytiska kopplingar.

Anteckning om informationSatsen LOAD måste ha antingen prefixet Replace eller Add, annars kommer den att avvisas.

Syntax:  

Add | Replace LOAD fieldlist

(

inline data [ format-spec ] |

resident table-label

) | extension pluginname.functionname([script] tabledescription)]

[ where criterion | while criterion ]

[ group by groupbyfieldlist ]

[order by orderbyfieldlist ]

Argument:  

Argument
Argument Beskrivning
fieldlist fieldlist ::= ( * | field {, * | field } )

En lista på de fält som ska läsas in. Genom att använda * som fältlista anger man alla fält i tabellen.

field ::= ( fieldref | expression ) [as aliasname ]

Fältdefinitionen måste alltid innehålla en litteral, en referens till ett befintligt fält eller ett uttryck.

fieldref ::= ( fieldname |@fieldnumber |@startpos:endpos [ I | U | R | B | T] )

fieldname är en text som är identisk med fältnamnet i tabellen. Observera att fältnamnet måste omslutas av raka, dubbla citationstecken eller av hakparenteser om det innehåller exempelvis mellanslag. Ibland är fältnamn inte explicit tillgängliga. Då används en annan metod:

@fieldnumber representerar fältnumret i en avgränsad tabellfil. Det måste vara ett positivt heltal som föregås av "@". Numreringen går alltid från 1 och upp till antalet fält.

@startpos:endpos representerar första och sista teckenposition för fältet i en fixpostfil med fasta fältpositioner. Positionerna måste vara positiva heltal. De två talen måste föregås av "@" och avgränsas av kolon. Numreringen går alltid från 1 och upp till antalet positioner. I det sista fältet används n som slutposition.

  • Om@startpos:endpos omedelbart följs av tecknen I ellerU, tolkas inlästa bytes som binärt signerade (I) eller osignerade (U) heltal (Intel byte order). Antalet positioner som läses måste vara 1, 2 eller 4.
  • Om @startpos:endpos omedelbart följs av tecknet R, tolkas inlästa bytes som ett binärt reellt tal (IEEE 32-bitars eller 64-bitars floating point). Antalet positioner som läses in måste vara 4 eller 8.
  • Om @startpos:endpos omedelbart följs av tecknet B, tolkas inlästa bytes som BCD (Binary Coded Decimal)-tal enligt COMP-3-standard. Valfritt antal bytes kan anges.

expression kan vara en numerisk funktion eller en strängfunktion baserad på ett eller flera andra fält i samma tabell. För ytterligare information, se uttryckens syntax.

as används för att döpa om fält.

inline inline används om data ska skrivas i skriptet, och inte läsas in från en fil.

data ::= [ text ]

Data som läses in med en inline-sats måste inledas och avslutas med dubbla citationstecken eller hakparenteser. Texten mellan dessa tolkas som om den vore skriven i en fil. Precis som du infogar en ny rad i en textfil bör du göra det även i texten i en inline-sats. Klicka på vanligt sätt på returtangenten när du skriver skriptet. Antalet kolumner definieras av den första raden.

format-spec ::= ( fspec-item {, fspec-item } )

Formatspecifikationen består av en lista med flera formatspecifikatorer inom parentes.

resident resident används om data ska läsas in från en tidigare inläst tabell.

table label är en etikett som föregår LOAD-satsen som skapade den ursprungliga tabellen. Etiketten ska avslutas med kolon.

Läsa in data från en tidigare inläst tabell

Tabelletiketter

extension

Du kan ladda data från analytiska kopplingar. Du måste använda extension-satsen för att anropa en funktion som definierats i SSE-insticksprogrammet (för komplement på serversidan) eller utvärdera ett skript.

Du kan skicka en enstaka tabell till SSE-insticksprogrammet. En datatabell returneras. Fälten kallas Field1, Field2 och så vidare om insticksprogrammet inte specificerar namnen på de fält som returneras.

Extension pluginname.functionname( tabledescription );

  • Ladda data med en funktion i ett SSE-insticksprogram

    tabledescription ::= (table { ,tablefield} )

    Om du inte anger tabellfält används fälten i laddningsordning.

  • Ladda data genom att utvärdera ett skript i ett SSE-insticksprogram

    tabledescription ::= ( script, table { ,tablefield} )

Datatyper identifieras automatiskt i analytiska kopplingar. Om data inte har numeriska värden och minst en icke-NULL textsträng betraktas fältet som text. I alla andra fall betraktas det som numeriskt.

Du kan tvinga datatypen genom att innesluta ett fältnamn med String() eller Mixed().

  • String() tvingar fältet att vara text. Om fältet är numeriskt extraheras textdelen av det duala värdet. Ingen konvertering görs.
  • Mixed() tvingar fältet att vara dualt.

String() eller Mixed() kan inte användas utanför extension-tabellfältdefinitioner och du kan inte använda andraQlik Sense -funktioner i en tabellfältdefinition.

Du kan läsa mer om analytiska kopplingar i GitHub-databasen. qlik-oss/server-side-extension

where where är ett tillägg som används för att tala om huruvida en post ska inkluderas i valet eller inte. Valet inkluderas om criterion är True.

criterion är ett logiskt uttryck.

while

while är en sats som används för att tala om när en post ska läsas in upprepade gånger. Samma post läses in så länge criterion är True. För att vara användbar måste en while-sats typiskt sett innehålla en IterNo( )-funktion.

criterion är ett logiskt uttryck.

group by

group by används för att definiera över vilka fält data ska aggregeras (grupperas). Aggregeringsfälten ska på något sätt inlemmas i de uttryck som läses in. Inga andra fält än aggregeringsfälten får användas utanför aggregeringsfunktionerna i inläsningsuttrycken.

groupbyfieldlist ::= (fieldname { ,fieldname } )

order by order by är en sats som används för att sortera poster i en resident tabell innan de bearbetas av load-satsen. Den residenta tabellen kan sorteras efter ett eller flera fält, i stigande eller sjunkande ordning. Sortering görs i första hand efter talvärde, i andra hand efter nationell sorteringsspråkvariant. Satsen är endast användbar när datakällan är en resident tabell.

Ordningsföljdsfälten anger efter vilket fält resident-tabellen sorteras. Ange fältets namn eller dess nummer i resident-tabellen (det första fältet får nummer 1).

orderbyfieldlist ::= fieldname [ sortorder ] { , fieldname [ sortorder ] }

sortorder är antingen asc för stigande eller desc för fallande. Om ingen sortorder anges, antas asc.

fieldname, path, filename och aliasname är textsträngar som representerar det namnen antyder. Valfritt fält i källtabellen kan användas som fieldname. Däremot hamnar fält som har skapats med hjälp av as-satsen (aliasname) utanför och kan inte användas inuti samma load-sats.

Mer information

 

Var den här sidan till hjälp för dig?

Om du hittar några fel på denna sida eller i innehållet – ett stavfel, ett steg som saknas eller ett tekniskt fel – berätta för oss så att vi kan blir bättre!