Перейти к основному содержимому

LookUp — функция скрипта

Функция Lookup() просматривает загруженную таблицу и возвращает значение поля field_name, соответствующее первому вхождению значения match_field_value в поле match_field_name. Таблица может быть текущей таблицей или другой ранее загруженной таблицей.

Syntax:  

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

Return data type: двойное значение

Arguments:  

Аргументы
Аргумент Описание
field_name Имя поля, для которого требуется возвращаемое значение.Вводимое значение необходимо задать в виде строки (например литералы ссылочного типа).
match_field_name Имя поля, в котором необходимо искать элемент match_field_value. Вводимое значение необходимо задать в виде строки (например литералы ссылочного типа).
match_field_value Значение, которое необходимо искать в поле match_field_name.
table_name

Имя таблицы, в которой необходимо искать значение. Вводимое значение необходимо задать в виде строки (например, литералы ссылочного типа).

Если элемент table_name отсутствует, принимается текущая таблица.

Примечание: Аргументы без кавычек относятся к текущей таблице. Чтобы отнести аргументы к другой таблице, заключите их в одинарные кавычки.

Limitations:  

Порядком поиска является порядок загрузки, если таблица не является результатом таких сложных операций, как операции объединения, в случае которых порядок недостаточно определен. Поля 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. Это поле, для которого будет выполняться поиск значения во втором аргументе 'ProductID' в таблице ProductList, как определено завершающими одинарными кавычками.

Функция возвращает значение для 'Category' (в таблице ProductList), загруженной как CategoryID.

Оператор 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
Примечание: Функция Lookup() гибкая, она может получить доступ к любой ранее загруженной таблице. Тем не менее, она медленно сравнивается с функцией Applymap().