Peek - kod fonksiyonu
Peek(), zaten yüklenmiş veya dahili bellekte var olan bir satır için bir tabloda bir alanın değerini bulur. Satır numarası belirtilebilir (tabloda olduğu gibi).
Syntax:
Peek(
field_name
[, row_no[, table_name ] ])
Return data type: dual
Arguments:
Bağımsız Değişken | Açıklama |
---|---|
field_name | Döndürülen değerin gerekli olduğu alanın adı.Giriş değeri bir dize (örneğin, tırnak içine alınmış bir değişmez değer) olarak verilmelidir. |
row_no |
Tabloda alanın zorunlu olduğunu belirten satır. Bir ifade olabilir, ancak tamsayıya çözümlenmelidir. 0 ilk kaydı ve 1 ikinci kaydı gösterir ve bu böyle devam eder. Negatif sayılar tablonun sonundan itibaren sırayı belirtir. -1 değeri, okunan son kaydı gösterir. row belirtilmezse -1 olduğu varsayılır. |
table_name | Sonunda iki nokta üst üste olmayan tablo etiketi. table_name belirtilmezse geçerli tablo olduğu varsayılır. LOAD deyimi dışında kullanılırsa veya başka bir tabloya referansta bulunursa, table_name dahil edilmelidir. |
Limitations:
Bir dahili tablonun ilk kaydında, fonksiyon NULL sonucunu döndürür.
Example:
Örnek kodu uygulamanıza ekleyin ve çalıştırın. Sonra sonucu görmek için en azından sonuçlar sütununda listelenen alanları uygulamanızdaki bir sayfaya ekleyin.
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; çünkü Peek('EmployeeCode',0) öğesi EmployeeDates tablosundaki ilk EmployeeCode değerini döndürür.
row_no bağımsız değişkeninin değeri değiştirildiğinde tablodaki diğer satırların değerleri döndürülür. Şöyle ki:
Peek('EmployeeCode',2), tablodaki üçüncü değeri döndürür: 103.
Ancak, üçüncü bağımsız değişken (table_no) olarak tablo belirtilmediğinde, fonksiyonun mevcut tabloya (bu örnekte dahili tabloya) referansta bulunduğunu unutmayın. Peek('EmployeeCode',-2) sonucu birden fazla değer içerir:
Çalışan kodu | EmpCode |
---|---|
101 |
- |
102 | - |
103 | 101 |
104 | 102 |
105 | 103 |
106 | 104 |
Example:
FirstEmployee:
Load EmployeeCode, Peek('EmployeeCode',-2,'EmployeeDates') As EmpCode
Resident EmployeeDates;
By specifying the argument table_no as 'EmployeeDates', the function returns the second-to-last value of EmployeeCode in the table EmployeeDates: 105.
Example:
Peek() fonksiyonu henüz yüklenmeyen verilere referansta bulunmak için kullanılabilir.
Örnek kodu uygulamanıza ekleyin ve çalıştırın. Sonra sonucu görmek için en azından sonuçlar sütununda listelenen alanları uygulamanızdaki bir sayfaya ekleyin.
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;
Create a table in a sheet in your app with ID, List, and Value as the dimensions.
Kimlik | Liste | Değer |
---|---|---|
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 |
IF() deyimi T1 geçici tablosundan oluşturulur.
Peek('ID'), geçerli tablo T2 içinde bir önceki satırda bulunan ID alanına referansta bulunur.
Peek('List'), ifade değerlendirildiği sırada oluşturulmakta olan T2 tablosunda bir önceki satırda bulunan List alanına referansta bulunur.
Deyim şöyle değerlendirilir:
Mevcut ID değeri, önceki ID değeriyle aynıysa, Peek('List') değerini mevcut Value değeri ile birleştirilmiş olarak yazın. Aksi takdirde sadece mevcut Value değerini yaz.
Peek('List') zaten birleştirilmiş bir sonuç içeriyorsa, yeni Peek('List') sonucu buna birleştirilir.
Example:
LOAD A, B, numsum( B, Peek( 'Bsum' ) ) as Bsum...;
Bsum içinde B toplamasını oluşturur.