Load
In un contesto di modifica del grafico, l'istruzione LOAD carica dati aggiuntivi sull'ipercubo, da dati definiti nello script o da una tabella precedentemente caricata. È anche possibile caricare dati da connessioni di analisi.
Sintassi:
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 ]
Argomenti:
Argomento | Descrizione |
---|---|
fieldlist |
fieldlist ::= ( * | field {, * | field } )
Un elenco di campi da caricare. L'utilizzo del carattere * come elenco dei campi indica tutti i campi della tabella. field ::= ( fieldref | expression ) [as aliasname ]La definizione di campo deve sempre contenere un valore letterale, un riferimento a un campo esistente o un'espressione. fieldref ::= ( fieldname |@fieldnumber |@startpos:endpos [ I | U | R | B | T] )fieldname è un testo che è identico al nome di un campo nella tabella. Tenere presente che il nome di campo deve essere racchiuso da virgolette doppie o parentesi quadre se, ad esempio, contiene spazi. Talvolta i nomi dei campi non sono disponibili in modo esplicito. Verrà quindi utilizzata una notazione differente: @fieldnumber rappresenta il numero di campo di un file tabellare delimitato. Deve essere un intero positivo preceduto da "@". La numerazione viene sempre eseguita partendo da 1 fino al numero di campi presenti. @startpos:endpos rappresenta le posizioni di inizio e di fine di un campo in un file con record a lunghezza fissa. Le posizioni devono essere entrambe numeri interi positivi. I due valori numerici devono essere preceduti dal simbolo "@" e separati da due punti. La numerazione viene sempre eseguita partendo da 1 fino al numero di posizioni presenti. Nell'ultimo campo n viene utilizzato come posizione finale.
expression può essere una funzione numerica o una funzione stringa basata su uno o molti altri campi della stessa tabella. Per ulteriori informazioni, vedere la sintassi delle espressioni. |
inline | inline viene utilizzato quando i dati devono essere immessi direttamente nello script e non caricati da un file. data ::= [ text ] I dati immessi mediante una clausola inline devono essere racchiusi tra virgolette doppie o tra parentesi quadre. Il testo tra parentesi o virgolette viene interpretato allo stesso modo del contenuto di un file. Pertanto, quando si desidera modificare o immettere una nuova riga in un file di testo, è necessario eseguire questa operazione anche nel testo di una clausola inline, ad esempio premendo il tasto INVIO mentre si digita lo script. Il numero di colonne è definito nella prima riga. format-spec ::= ( fspec-item {, fspec-item } )La specifica del formato è costituita da un elenco di più voci di specifica del formato, racchiuse tra parentesi. |
resident | resident viene usato se i dati devono essere caricati da una tabella caricata in precedenza. table label è un'etichetta che precede l'istruzione LOAD che ha creato la tabella originale. L'etichetta dovrà essere indicata con i due punti finali. |
extension |
È possibile caricare dati da connessioni di analisi. È necessario utilizzare la clausola extension per chiamare una funzione definita nel plug-in SSE (Server-Side Extension) o per valutare uno script. È possibile inviare una singola tabella al plug-in SSE, che restituisce una singola tabella di dati. Se il plug-in non specifica i nomi dei campi restituiti, i campi saranno denominati Field1, Field2 e così via. Extension pluginname.functionname( tabledescription );
Gestione dei tipi di dati nella definizione dei campi della tabella I tipi di dati sono riconosciuti automaticamente nelle connessioni di analisi. Se i dati non hanno valori numerici e hanno almeno una stringa di testo non NULL, il campo è considerato di tipo testo. In tutti gli altri casi è considerato di tipo numerico. È possibile forzare il tipo di dati racchiudendo il nome del campo in String() o Mixed().
String() o Mixed() non possono essere utilizzati esternamente alle definizioni dei campi della tabella extension e non è possibile utilizzare altre funzioni di Qlik Sense nella definizione di un campo della tabella. Ulteriori informazioni sulle connessioni di analisi sono disponibili nel repository di GitHub. qlik-oss/server-side-extension |
where | where è una clausola utilizzata per dichiarare se un record deve essere incluso o meno nella selezione. La selezione viene inclusa se criterion è True. criterion è un'espressione logica. |
while |
while è una clausola che specifica se un record deve essere letto ripetutamente. Viene letto lo stesso record finché criterion è True. Per risultare utile, una clausola while deve generalmente includere la funzione IterNo( ). criterion è un'espressione logica. |
group by |
group by è una clausola usata per definire su quali campi devono essere aggregati (raggruppati) i dati. I campi di aggregazione devono essere inclusi in qualche modo nelle espressioni caricate. Nessun altro campo tranne i campi di aggregazione può essere usato al di fuori delle funzioni di aggregazione nelle espressioni caricate. groupbyfieldlist ::= (fieldname { ,fieldname } ) |
order by | order by è una clausola utilizzata per ordinare i record di una tabella residente prima che vengano elaborati da un’istruzione load. La tabella residente può essere ordinata su uno o più campi, in modo crescente o decrescente. L’ordinamento viene eseguito innanzitutto in base ai valori numerici e secondariamente in base all'ordine di confronto nazionale. Questa clausola può essere utilizzata solamente quando la sorgente dati è una tabella residente. I campi di ordinamento specificano il campo in base al quale viene ordinata la tabella residente. Il campo può essere specificato da un nome o dal suo numero nella tabella residente (il primo campo è il numero 1). orderbyfieldlist ::= fieldname [ sortorder ] { , fieldname [ sortorder ] } sortorder è asc per crescente o desc per decrescente. Se sortorder non è specificato, viene utilizzato asc. fieldname, path, filename e aliasname sono stringhe di testo che rappresentano ciò che implica il loro rispettivo nome. Qualsiasi campo presente nella tabella sorgente può essere utilizzato come fieldname. Tuttavia, i campi creati mediante la clausola as (aliasname) non appartengono all'ambito e non possono essere utilizzati all'interno della stessa istruzione load. |