Load
Met de opdracht LOAD worden velden geladen uit een bestand, uit gegevens die in het script zijn gedefinieerd, uit een eerder geladen tabel, van een webpagina, uit het resultaat van een daaropvolgende SELECT-opdracht of door gegevens automatisch te genereren.
Syntaxis:
LOAD [ distinct ] fieldlist
[( from file [ format-spec ] |
from_field fieldassource [format-spec]
inline data [ format-spec ] |
resident table-label |
autogenerate size )]
[ where criterion | while criterion ]
[ group_by groupbyfieldlist ]
[order_by orderbyfieldlist ]
Argumenten:
Argumenten | Beschrijving |
---|---|
distinct | U kunt distinct gebruiken als een predicaat als u alleen unieke records wilt laden. Als er dubbele records aanwezig zijn, wordt alleen het eerste exemplaar geladen. Als u voorgaande loads gebruikt, moet u distinct in de eerste load-instructie plaatsen, omdat distinct alleen van toepassing is op de doeltabel. |
fieldlist | fieldlist ::= ( * | field {, field } ) Een lijst van de velden die geladen moeten worden. Gebruik een * als veldlijst om alle velden in de tabel aan te duiden. field ::= ( fieldref | expression ) [as aliasname ]De velddefinitie moet altijd een literal, een referentie naar een bestaand veld of een uitdrukking bevatten. fieldref ::= ( fieldname |@fieldnumber |@startpos:endpos [ I | U | R | B | T] )fieldname is een tekst die identiek is aan een veldnaam in de tabel. Houd er rekening mee dat de veldnaam tussen rechte dubbele aanhalingstekens of vierkante haken moet staan als deze bijvoorbeeld spaties bevat. Soms zijn veldnamen niet expliciet beschikbaar. In dat geval wordt een andere notatie gebruikt: @fieldnumber geeft het veldnummer in een tabelbestand met scheidingstekens aan. Het moet een positief geheel getal zijn, voorafgegaan door “@”. De nummering is altijd vanaf 1 optellend tot het aantal velden. @startpos:endpos geeft de begin- en eindposities van een veld aan in een bestand met een vaste recordlengte. De posities moeten beide positieve gehele getallen zijn. De twee getallen moeten worden voorafgegaan door "@" en gescheiden door een dubbele punt. De nummering is altijd vanaf 1 optellend tot het aantal posities. In het laatste veld wordt n gebruikt als eindpositie.
expression kan een numerieke functie of een tekenreeksfunctie zijn, gebaseerd op een of meer andere velden in dezelfde tabel. Zie de syntaxis van uitdrukkingen voor meer informatie. as wordt gebruikt om een nieuwe naam aan een veld toe te wijzen. |
from | from wordt gebruikt als gegevens uit een bestand moeten worden geladen. file ::= [ path ] filename
Als er geen pad is opgegeven, zoekt QlikView het bestand in de map die is opgegeven in de instructie Directory. Als er geen Directory-instructie is, zoekt QlikView in de werkmap, meestal de map waarin het QlikView-bestand zich bevindt. InformatieIn een QlikView-serverinstallatie is C:\ProgramData\QlikTech\Documents de standaardwerkmap. De standaardwerkmap kan worden gewijzigd in de QlikView Beheerconsole. De filename kan de standaard DOS-jokertekens ( * en ? ) bevatten. Daarmee worden alle overeenkomstige bestanden in de opgegeven map geladen. format-spec ::= ( fspec-item { , fspec-item } )De opmaakspecificatie bestaat uit een lijst met verschillende opmaakspecificatie-items, tussen haakjes. |
from_field | from_field wordt gebruikt als gegevens moeten worden geladen uit een eerder geladen veld. fieldassource::=(tablename, fieldname) De veldnaam is de naam van de eerder geladen tablename en fieldname. format-spec ::= ( fspec-item {, fspec-item } )De opmaakspecificatie bestaat uit een lijst met verschillende opmaakspecificaties, tussen haakjes. |
inline | inline wordt gebruikt als gegevens moeten worden getypt in het script en niet uit een bestand moeten worden geladen. data ::= [ text ] Gegevens die u invoert met een inline-clausule moeten tussen specifieke tekens worden geplaatst – vierkante haakjes, aanhalingstekens of backticks. De tekst ertussen wordt net zo geïnterpreteerd als de inhoud van een bestand. Waar u bijvoorbeeld een nieuwe regel in een tekstbestand zou invoegen, moet u dat ook doen in de tekst van een inline-clausule: u drukt dus op Enter bij het typen van het script. In een simpele inline-lading wordt het aantal kolommen bepaald door de eerste regel. format-spec ::= ( fspec-item {, fspec-item } )U kunt de inline-lading aanpassen met veel van dezelfde opmaakspecificaties die beschikbaar zijn voor andere geladen tabellen. Deze items worden tussen haakjes geplaatst. Zie voor meer informatie Opmaakspecificaties. Zie Gegevens laden vanuit inline-tabellen voor meer informatie over inline-ladingen. |
resident | resident wordt gebruikt als gegevens moeten worden geladen uit een eerder geladen tabel. table label is een label dat vooraf gaat aan de LOAD- of SELECT-opdracht(en) waarmee de oorspronkelijke tabel is gemaakt. Het label moet worden opgegeven met een puntkomma aan het eind. Wanneer een combinatie van de laadinstructies distinct en resident wordt gebruikt in QlikView 12.00 of latere versies, is de volgorde van geladen gegevens anders dan in QlikView 11.20. Voeg een order by-clausule toe om een gewenste laadvolgorde te definiëren. |
autogenerate | autogenerate wordt gebruikt als gegevens automatisch moeten worden gegenereerd door QlikView. size ::= number Number is een geheel getal dat het aantal te genereren records aangeeft. De veldlijst mag geen uitdrukkingen bevatten waarvoor gegevens uit een database nodig zijn. Alleen constanten en functies zonder parameters (zoals rand() of recno()) zijn in de uitdrukkingen toegestaan. |
extension | U kunt gegevens via analytische verbindingen laden. Als u een functie wilt aanroepen die in de SSE-plug-in is gedefinieerd, moet u de clausule extension gebruiken of een script evalueren. U kunt één tabel naar de SSE-plugin verzenden, waarop één gegevenstabel wordt teruggegeven. Als door de plugin niet de namen worden aangegeven van de velden die worden teruggegeven, krijgen de velden de namen Field1, Field2 enzovoort. Extension pluginname.functionname( tabledescription );
Afhandeling van gegevenssoorten in de tabelvelddefinitie Gegevenssoorten in analytische verbindingen worden automatisch gedetecteerd. Als de gegevens geen getalswaarden bevatten en ten minste één teksttekenreeks die niet leeg is, wordt het veld als tekstveld beschouwd. In alle andere gevallen wordt het veld als getalsveld beschouwd. U kunt de gegevenssoort afdwingen door een veldnaam op te nemen in String() voor een tekenreeks of Mixed() voor gemengd.
String() en Mixed() kunnen niet buiten tabelvelddefinities van extension worden gebruikt, en u kunt geen andere QlikView-functies in een tabelvelddefinitie gebruiken. Meer over analytische verbindingen Voor het maken van analytische verbindingen in QlikView Server of QlikView Desktop, zie: Analytische verbindingen Meer over analytische verbindingen leest u in GitHub. qlik-oss/server-side-extension |
where | where is een clausule die wordt gebruikt om aan te geven of een record wel of niet in de selectie moet worden opgenomen. De selectie wordt opgenomen als criterion de waarde True heeft. criterion is een logische uitdrukking. |
while | while is een clausule die aangeeft of een record herhaaldelijk moet worden gelezen. Hetzelfde record wordt gelezen zolang criterion de waarde True heeft. Een while-clausule is vaak pas nuttig wanneer u deze samen met de functie IterNo( ) gebruikt. criterion is een logische uitdrukking. |
group_by | group by is een clausule die wordt gebruikt om te definiëren over welke velden de gegevens moeten worden geaggregeerd (gegroepeerd). De aggregatievelden moeten op de een of andere manier in de geladen uitdrukkingen worden opgenomen. U mag geen andere velden dan de aggregatievelden gebruiken buiten aggregatiefuncties in de geladen uitdrukkingen. groupbyfieldlist ::= (fieldname { ,fieldname } ) |
order_by | order by is een clausule die wordt gebruikt om de records van een residente tabel te sorteren voordat ze worden verwerkt door de load-opdracht. De residente tabel kan worden gesorteerd op één of meer velden in oplopende of aflopende volgorde. Het sorteren gebeurt primair op numerieke waarde en secundair op nationale sorteervolgorde. U kunt deze clausule alleen gebruiken wanneer de gegevensbron een residente tabel is. De volgordevelden geven aan op welk veld de residente tabel wordt gesorteerd. U kunt het veld opgeven met z'n naam of met z'n nummer in de residente tabel (het eerste veld is nummer 1). orderbyfieldlist ::= fieldname [ sortorder ] { , fieldname [ sortorder ] } sortorder is asc voor oplopend of desc voor aflopend. Als u geen sortorder opgeeft, wordt asc verondersteld. fieldname, path, filename en aliasname zijn tekenreeksen die aangeven waar de respectievelijke namen voor staan. Elk veld in de brontabel kan worden gebruikt als fieldname. Velden die zijn gemaakt via de as-clausule (aliasname) vallen echter buiten het bereik en kunnen niet worden gebruikt binnen dezelfde load-instructie. |
Als u geen gegevensbron opgeeft door middel van de clausule from, inline, resident, from_field of autogenerate, worden gegevens geladen uit de resultaten van de direct volgende SELECT- of LOAD-instructie. Deze instructie geen prefix hebben.
Voorbeelden: