LookUp - 脚本函数
Lookup() 用于查找已经加载的表格,并返回与在字段 match_field_name 中第一次出现的值 match_field_value 对应的 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。这是用于在 ProductList 的第二个参数'ProductID'中查找值的字段,用单引号括起来表示。
此函数返回“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 |