Ir para conteúdo principal

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.

Syntax:  

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

Return data type: dual

Arguments:  

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.

Nota: Argumentos sem aspas, consulte a tabela atual. Para se referir a outras tabelas, coloque um argumento entre aspas simples.

Limitations:  

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.

Os dados de amostra usam a função Lookup() da seguinte forma:

Lookup('Category', 'ProductID', ProductID, 'ProductList')

Adicione o script de exemplo ao seu aplicativo e execute-o. Em seguida, adicione os campos listados na coluna de resultados a uma pasta 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:

Tabela resultante
ProductID InvoiceID CustomerID Unidades 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
Nota: A função Lookup() é flexível e pode acessar qualquer tabela previamente carregada. Contudo, é lenta em comparação com a função Applymap().