기본 콘텐츠로 건너뛰기

Peek - 스크립트 함수

이 페이지에서

Peek - 스크립트 함수

Peek()는 테이블에서 이미 로드되었거나 내부 메모리에 존재하는 행에 대한 필드 값을 찾습니다. 테이블처럼 행 번호를 지정할 수 있습니다.

Syntax:  

Peek(

field_name

[, row_no[, table_name ] ])

Return data type: dual

Arguments:  

인수
인수 설명
field_name 반환 값이 필요한 필드의 이름입니다.입력 값은 문자열(예: 따옴표로 묶은 리터럴)로 지정해야 합니다.
row_no

테이블에서 필수 필드를 지정하는 행입니다. 표현식을 사용할 수 있지만 정수로 처리해야 합니다. 0은 첫 번째 레코드, 1은 두 번째 레코드와 같은 식으로 이어집니다. 음수는 테이블 끝을 기준으로 한 순서를 나타냅니다. 1은 마지막으로 읽은 레코드를 나타냅니다.

row를 지정하지 않으면 -1이 사용됩니다.

table_name 끝 부분에 콜론이 없는 테이블 레이블. table_name을 지정하지 않으면 현재 테이블이 사용됩니다. LOAD 문 외부에서 사용하거나 다른 테이블을 참조할 경우 table_name을 반드시 포함해야 합니다.

Limitations:  

이 함수는 내부 테이블의 첫 번째 레코드에 대해 NULL을 반환합니다.

Example:  

예제 스크립트를 앱에 추가하고 실행합니다. 그런 다음, 결과를 보기 위해 결과 열에 나열된 필드를 앱의 시트에 추가합니다.

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. Peek('EmployeeCode',0)EmployeeDates 테이블의 EmployeeCode의 첫 번째 값을 반환하기 때문입니다.

다음과 같이 row_no 인수의 값을 바꾸면 테이블의 다른 행의 값을 반환합니다.

Peek('EmployeeCode',2)는 테이블의 세 번째 값을 반환합니다. 103.

하지만 테이블을 세 번째 인수 table_no로 지정하지 않으면 이 함수가 현재 테이블(이 경우 내부 테이블)을 참조합니다. Peek('EmployeeCode',-2)의 결과로 다음과 같은 여러 값을 얻을 수 있습니다.

결과 테이블
직원 코드 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() 함수는 아직 로드되지 않은 데이터를 참조하는 데 사용할 수 있습니다.

예제 스크립트를 앱에 추가하고 실행합니다. 그런 다음, 결과를 보기 위해 결과 열에 나열된 필드를 앱의 시트에 추가합니다.

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.

결과 테이블
ID 목록
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() 문은 임시 테이블 T1에서 생성됩니다.
Peek('ID')는 현재 테이블 T2의 이전 행에서 ID 필드를 참조합니다.
Peek('List')는 표현식을 평가하면서 현재 생성 중인 테이블 T2의 이전 행에서 List 필드를 참조합니다.

이 문은 다음과 같이 평가됩니다.
ID의 현재 값이 ID의 이전 값과 동일한 경우, Value의 현재 값과 연결된 Peek('List')의 값을 작성합니다. 그렇지 않으면 Value의 현재 값만 작성합니다.

Peek('List')에 연결된 결과가 이미 있는 경우 Peek('List')의 새로운 결과가 연결됩니다.

참고: Order by 절에 주의하십시오. 테이블 정렬 방법을 지정합니다(ID에 따라 오름차순으로). 이 절이 없으면 Peek() 함수가 내부 테이블에 지정된 임의의 순서를 사용하므로 예기치 못한 결과가 발생할 수 있습니다.

Example:  

LOAD A, B, numsum( B, Peek( 'Bsum' ) ) as Bsum...;

Bsum에서 B의 누적을 만듭니다.