LookUp — функция скрипта
Функция Lookup() просматривает загруженную таблицу и возвращает значение поля field_name, соответствующее первому вхождению значения match_field_value в поле match_field_name. Таблица может быть текущей таблицей или другой ранее загруженной таблицей.
Синтаксис:
lookup(field_name, match_field_name, match_field_value [, table_name])
Возвращаемые типы данных: двойное значение
Аргументы:
Аргумент | Описание |
---|---|
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. Это поле, для которого будет выполняться поиск значения во втором аргументе '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 |