LookUp - 스크립트 함수
Lookup()은 이미 로드된 테이블을 조회하여 match_field_name 필드의 match_field_value 값의 첫 번째 발생 항목에 해당하는 field_name의 값을 반환합니다. 테이블은 현재 테이블이거나 이전에 로드한 다른 테이블일 수 있습니다.
구문:
lookup(field_name, match_field_name, match_field_value [, table_name])
반환 데이터 유형: dual
인수:
인수 | 설명 |
---|---|
field_name | 반환 값이 필요한 필드의 이름입니다.입력 값은 문자열(예: 따옴표로 묶은 리터럴)로 지정해야 합니다. |
match_field_name | match_field_value를 조회할 필드의 이름입니다. 입력 값은 문자열(예: 따옴표로 묶은 리터럴)로 지정해야 합니다. |
match_field_value | match_field_name 필드에서 조회할 값입니다. |
table_name |
값을 조회할 테이블의 이름입니다. 입력 값은 문자열(예: 따옴표로 묶은 리터럴)로 지정해야 합니다. table_name을 생략하면 현재 테이블이 사용됩니다. |
제한 사항:
테이블이 조인과 같은 복잡한 연산의 결과일 경우 순서가 잘 정의되지 않으며, 그렇지 않을 경우 로드 순서가 검색 순서가 됩니다. field_name 및 match_field_name은 table_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 | Units | 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 |