LookUp - função de script
Lookup() examina uma tabela que já esteja carregada e retorna o valor de field_name correspondente à primeira ocorrência do valor match_field_value no campo match_field_name. A tabela pode ser a tabela atual ou outra tabela carregada anteriormente.
Sintaxe:
lookup(field_name, match_field_name, match_field_value [, table_name])
Tipo de dados de retorno: dual
Argumentos:
Argumento | Descrição |
---|---|
field_name | Nome do campo para o qual o valor de retorno é exigido.O valor de entrada deve ser fornecido como uma string (por exemplo, literais entre aspas). |
match_field_name | Nome do campo para procurar em match_field_value. O valor de entrada deve ser fornecido como uma string (por exemplo, literais entre aspas). |
match_field_value | Valor para procurar no campo match_field_name |
table_name |
Nome da tabela em que procurar o valor. O valor de entrada deve ser fornecido como uma string (por exemplo, literais entre aspas). Se table_name for omitido, a tabela atual será assumida. |
Limitações:
A ordem da pesquisa é feita é na ordem de carga, a menos que a tabela seja o resultado de operações complexas, como uniões, em que a ordem não é bem definida. Tanto field_name quanto match_field_name devem ser campos da mesma tabela, especificados pelo table_name.
Se não for encontrada correspondência, NULL será retornado.
Exemplo:
Os dados de amostra usam a função Lookup() da seguinte forma:
Lookup('Category', 'ProductID', ProductID, 'ProductList')
Adicione o script de exemplo ao seu documento e execute-o. Em seguida, adicione pelo menos os campos listados na coluna de resultados a um documento para ver o resultado.
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
A tabela ProductList é carregada primeiro.
A Lookup() função é usada para construir a tabela OrderData. Especifica o terceiro argumento como ProductID. Este é o campo em que o valor deve ser pesquisado no segundo argumento 'ProductID' na ProductList, conforme indicado pelas aspas simples.
A função retorna o valor para 'Category' (na tabela ProductList), carregada como CategoryID.
O comando drop exclui a tabela ProductList do modelo de dados, porque não é necessário, o que deixa a tabela OrderData com o seguinte resultado:
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 |