기본 콘텐츠로 건너뛰기 보완적인 콘텐츠로 건너뛰기

Peek - 스크립트 함수

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

구문:  

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

반환 데이터 유형: dual

인수:  

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

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

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

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

제한 사항:  

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

예 1:  

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

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)의 결과로 다음과 같은 여러 값을 얻을 수 있습니다.

예 1 결과
EmployeeCode EmpCode
101 -
102 -
103 101
104 102
105 103
106 104

예 2:  

FirstEmployee:

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

Resident EmployeeDates;

 

table_no 인수를 'EmployeeDates'로 지정하면 이 함수가 EmployeeDates 테이블의 EmployeeCode의 끝에서 두 번째 값을 반환합니다. 105.

예 3:  

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;

 

ID, ListValue를 차원으로 가진 문서에서 시트에 테이블을 만듭니다.

예 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

IF() 문은 임시 테이블 T1에서 생성됩니다.
Peek('ID')는 현재 테이블 T2의 이전 행에서 ID 필드를 참조합니다.
Peek('List')는 표현식을 평가하면서 현재 생성 중인 테이블 T2의 이전 행에서 List 필드를 참조합니다.

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

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

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

이 페이지가 도움이 되었습니까?

이 페이지 또는 해당 콘텐츠에서 오타, 누락된 단계 또는 기술적 오류와 같은 문제를 발견하면 개선 방법을 알려 주십시오!

분석 현대화 프로그램에 참여

Remove banner from view

분석 현대화 프로그램으로 귀중한 QlikView 앱을 손상시키지 않고 현대화하십시오. 여기를 클릭 하여 자세한 내용을 참조하거나 다음에 연결하십시오. ampquestions@qlik.com