기본 콘텐츠로 건너뛰기

LookUp - 스크립트 함수

Lookup()은 이미 로드된 테이블을 조회하여 match_field_name 필드의 match_field_value 값의 첫 번째 발생 항목에 해당하는 field_name의 값을 반환합니다. 테이블은 현재 테이블이거나 이전에 로드한 다른 테이블일 수 있습니다.

Syntax:  

lookup(field_name, match_field_name, match_field_value [, table_name])

Return data type: dual

Arguments:  

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

값을 조회할 테이블의 이름입니다. 입력 값은 문자열(예: 따옴표로 묶은 리터럴)로 지정해야 합니다.

table_name을 생략하면 현재 테이블이 사용됩니다.

참고: 따옴표가 없는 인수는 현재 테이블을 참조합니다. 다른 테이블을 참조하려면 작은따옴표 안에 해당 인수를 넣으십시오.

Limitations:  

테이블이 조인과 같은 복잡한 연산의 결과일 경우 순서가 잘 정의되지 않으며, 그렇지 않을 경우 로드 순서가 검색 순서가 됩니다. field_namematch_field_nametable_name으로 지정된 테이블과 동일한 테이블 내의 필드여야 합니다.

일치 항목이 발견되지 않으면 NULL이 반환됩니다.

샘플 데이터에서는 다음과 같은 형식으로 Lookup() 함수를 사용합니다.

Lookup('Category', 'ProductID', ProductID, 'ProductList')

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

ProductList:

Load * Inline [

ProductID|Product|Category|Price

1|AA|1|1

2|BB|1|3

3|CC|2|8

4|DD|3|2

] (delimiter is '|');

 

OrderData:

Load *, Lookup('Category', 'ProductID', ProductID, 'ProductList') as CategoryID

Inline [

InvoiceID|CustomerID|ProductID|Units

1|Astrida|1|8

1|Astrida|2|6

2|Betacab|3|10

3|Divadip|3|5

4|Divadip|4|10

] (delimiter is '|');

 

Drop Table ProductList

 

ProductList 테이블이 먼저 로드됩니다.

Lookup() 함수는 OrderData 테이블을 만드는 데 사용됩니다. 세 번째 인수가 ProductID로 지정됩니다. 둘러싼 작은따옴표에 지정된 대로 ProductList의 두 번째 인수 'ProductID'에서 값을 조회할 필드입니다.

이 함수는 CategoryID로 로드된 'Category'(ProductList 테이블 내)의 값을 반환합니다.

drop 문은 불필요한 ProductList 테이블을 데이터 모델에서 삭제하며 다음과 같은 결과를 가진 OrderData 테이블은 남겨둡니다.

결과 테이블
ProductID InvoiceID CustomerID 단위 CategoryID
1 1 Astrida 8 1
2 1 Astrida 6 1
3 2 Betacab 10 2
3 3 Divadip 5 2
4 4 Divadip 10 3
참고: Lookup() 함수는 유연하므로 이전에 로드한 테이블에 액세스할 수 있습니다. 하지만 Applymap() 함수와 비교하여 속도가 느립니다.