Vai al contenuto principale Passa a contenuto complementare

Peek - funzione di script

Peek() individua il valore di un campo in una tabella per una riga che è già stata caricata o che esiste nella memoria interna. È possibile specificare il numero di riga così come la tabella.

Sintassi:  

Peek(field_name[, row_no[, table_name ] ] )

Tipo di dati restituiti: duale

Argomenti:  

Argomenti Peek
Argomento Descrizione
field_name Nome del campo per cui è richiesto il valore restituito.Il valore di input deve essere specificato come stringa (ad esempio, un valore letterale tra virgolette).
row_no

La riga nella tabella che specifica il campo richiesto. Può essere un'espressione, tuttavia deve restituire un numero intero. 0 indica il primo record, 1 indica il secondo e così via. I numeri negativi indicano l'ordine dalla fine della tabella. -1 indica l'ultimo record letto.

Se non viene dichiarato alcun valore row verrà utilizzato il valore -1.

table_name Un'etichetta di tabella senza due punti finali. Se non è dichiarato table_name, viene utilizzata la tabella attuale. Se utilizzato al di fuori dell'istruzione LOAD o se fa riferimento a un'altra tabella, è necessario includere table_name.

Limiti:  

Nel primo record di una tabella interna, la funzione restituisce NULL.

Esempio 1:  

Aggiungere lo script di esempio al documento ed eseguirlo. Aggiungere quindi a un foglio del documento almeno i campi elencati nella colonna dei risultati per visualizzare il risultato.

EmployeeDates:

Load * Inline [

EmployeeCode|StartDate|EndDate

101|02/11/2010|23/06/2012

102|01/11/2011|30/11/2013

103|02/01/2012|

104|02/01/2012|31/03/2012

105|01/04/2012|31/01/2013

106|02/11/2013|

] (delimiter is '|');

 

FirstEmployee:

Load EmployeeCode, Peek('EmployeeCode',0) As EmpCode

Resident EmployeeDates;

 

EmpCode = 101, poiché Peek(EmployeeCode,0) restituisce il primo valore di EmployeeCode nella tabella EmployeeDates.

La sostituzione del valore dell'argomento row_no restituisce i valori delle altre righe nella tabella, nel modo seguente:

Peek('EmployeeCode',2) restituisce il terzo valore nella tabella: 103.

Tuttavia, tenere presente che se non si specifica la tabella come il terzo argomento table_no, la funzione farà riferimento alla tabella attuale (in questo caso, interna). Peek(EmployeeCode,-2) restituisce valori multipli:

Risultati esempio 1
EmployeeCode EmpCode
101 -
102 -
103 101
104 102
105 103
106 104

Esempio 2:  

FirstEmployee:

Load EmployeeCode, Peek('EmployeeCode',-2,'EmployeeDates') As EmpCode

Resident EmployeeDates;

 

Specificando l'argomento table_no come 'EmployeeDates', la funzione restituisce il penultimo valore di EmployeeCode nella tabella EmployeeDates: 105.

Esempio 3:  

La funzione Peek() può essere utilizzata per fare riferimenti ai dati non ancora caricati.

Aggiungere lo script di esempio al documento ed eseguirlo. Aggiungere quindi a un foglio del documento almeno i campi elencati nella colonna dei risultati per visualizzare il risultato.

T1:

LOAD * inline [

ID, Value

1|3

1|4

1|6

3|7

3|8

2|1

2|11

5|2

5|78

5|13

] (delimiter is '|');

T2:

LOAD

*,

IF(ID=Peek('ID'), Peek('List')&','&Value,Value) AS List

RESIDENT T1

ORDER BY ID ASC;

DROP TABLE T1;

 

Creare una tabella in un foglio nel documento con ID, List e Value come dimensioni.

Risultati esempio 3
ID List Value
1 6 6
1 6,3 3
1 6,3,4 4
2 11 11
2 11,10 10
2 11,10,1 1
3 8 8
3 8,7 7
5 13 13
5 13,2 2
5 13,2,78 78

L'istruzione IF() viene creata a partire dalla tabella temporanea T1.
Peek('ID') fa riferimento al campo ID nella riga precedente nella tabella corrente T2.
Peek('List') fa riferimento al campo List nella riga precedente nella tabella T2, attualmente in fase di creazione mentre l'espressione viene valutata.

L'istruzione viene valutata nel seguente modo:
Se il valore corrente di ID è identico al valore precedente di ID, scrivere il valore di Peek('List') concatenandolo con il valore corrente di Value. In alternativa, scrivere solo il valore corrente diValue.

Se Peek('List') contiene già un risultato concatenato, il nuovo risultato di Peek('List)' verrà concatenato a tale risultato.

Nota informaticaPrendere nota della clausola Order by. Questa clausola specifica il metodo di ordinamento della tabella (in base all'ID in ordine crescente). Senza questa clausola, la funzione Peek() utilizzerebbe qualsiasi ordinamento arbitrario presente nella tabella interna, portando a risultati potenzialmente imprevedibili.

Hai trovato utile questa pagina?

Se riscontri problemi con questa pagina o con il suo contenuto – un errore di battitura, un passaggio mancante o un errore tecnico – facci sapere come possiamo migliorare!

Partecipa al programma Analytics Modernization

Remove banner from view

Modernizza senza compromettere le tue preziose app QlikView con il programma Analytics Modernization. Fare clic qui per maggiori informazioni o per contattarci: ampquestions@qlik.com