Aggiungere lo script di esempio all'app ed eseguirlo. Aggiungere quindi a un foglio nell'app 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:
|
EmployeeCode 101 102 103 104 105 106
|
EmpCode - - 101 102 103 104
|
|
|
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. |
La funzione Peek() può essere utilizzata per fare riferimento ai dati che non sono stati ancora caricati.
Aggiungere lo script di esempio all'app ed eseguirlo. Aggiungere quindi a un foglio nell'app 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 nell'app con ID, List e Value come dimensioni. |
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 attuale 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 attuale di Value.
Se Peek('List') contiene già un risultato concatenato, il nuovo risultato di Peek('List') verrà concatenato a tale risultato.
Nota: Prendere 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.
|
|