Exemplo 1
Exists
(Employee)
Retorna -1 (True) se o valor do campo Employee no registro atual já existir em qualquer registro lido anteriormente que contenha esse campo.
Os comandos Exists (Employee, Employee) e Exists (Employee) são equivalentes.
Exemplo 2
Exists(Employee,
'Bill')
Retorna -1 (True) se o valor de campo 'Bill' for encontrado no conteúdo atual do campo Employee.
Exemplo 3
Employees:
LOAD * inline [
Employee|ID|Salary
Bill|001|20000
John|002|30000
Steve|003|35000
] (delimiter is '|');
Citizens:
Load * inline [
Employee|Address
Bill|New York
Mary|London
Steve|Chicago
Lucy|Madrid
Lucy|Paris
John|Miami
] (delimiter is '|') where Exists (Employee);
Drop Tables Employees;
Isso resulta em uma tabela que pode ser visualizada em visualização de tabela usando as dimensões Employee e Address.
A cláusula where, where Exists (Employee), significa que apenas os nomes da tabela Citizens que também estão em Employees são carregados na nova tabela. O comando Drop remove a tabela Employees para evitar confusão.
Resultados
|
|
Employee |
Address |
Bill | New York |
John | Miami |
Steve | Chicago |
Exemplo 4
Employees:
Load * inline [
Employee|ID|Salary
Bill|001|20000
John|002|30000
Steve|003|35000
] (delimiter is '|');
Citizens:
Load * inline [
Employee|Address
Bill|New York
Mary|London
Steve|Chicago
Lucy|Madrid
Lucy|Paris
John|Miami
] (delimiter is '|') where not Exists (Employee);
Drop Tables Employees;
A cláusula where inclui not: where not Exists (Employee).
Isso significa que apenas os nomes da tabela Citizens que não estão em Employees são carregados para a nova tabela.
Observe que há dois valores para Lucy na tabela Citizens, mas apenas um é incluído na tabela de resultados. Quando você carrega a primeira linha com o valor Lucy, ela é incluída no campo Employee. Portanto, quando a segunda linha é verificada, o valor já existe.
Resultados
Funcionário |
Endereço |
Mary |
London |
Lucy | Madrid |
Exemplo 5
Esse exemplo mostra como carregar todos os valores.
Employees:
Load Employee As Name;
LOAD * inline [
Employee|ID|Salary
Bill|001|20000
John|002|30000
Steve|003|35000
] (delimiter is '|');
Citizens:
Load * inline [
Employee|Address
Bill|New York
Mary|London
Steve|Chicago
Lucy|Madrid
Lucy|Paris
John|Miami
] (delimiter is '|') where not Exists (Name, Employee);
Drop Tables Employees;
Para obter todos os valores de Lucy, duas coisas foram alteradas:
-
Um carregamento anterior na tabela Employees foi inserido no ponto em que Employee foi renomeado para Name.
Load Employee As Name;
-
A condição Onde em Citizens foi alterada para:
not Exists (Name, Employee).
Isso cria campos para Name e Employee. Quando a segunda linha com Lucy está marcada, ela ainda não existe em Name.
Resultados
Funcionário |
Endereço |
Mary |
London |
Lucy | Madrid |
Lucy | Paris |