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 |