Exists
(Employee)
|
Renvoie -1 (True) si la valeur du champ Employee figurant dans l'enregistrement actif existe déjà dans un enregistrement lu précédemment et contenant ce champ.
|
Exists(Employee,
'Bill')
|
Renvoie -1 (True) si la valeur de champ 'Bill' se trouve dans le contenu actif du champ Employee.
Les instructions Exists (Employee, Employee) et Exists (Employee) sont équivalentes.
|
Employees:
LOAD * inline [
Employee|ID|Salary
Bill|001|20000
John|002|30000
Steve|003|35000
] (delimiter is '|');
Citizens:
Load * inline [
Name|Address
Bill|New York
Mary|London
Steve|Chicago
Lucy|Paris
John|Miami
] (delimiter is '|');
EmployeeAddresses:
Load Name as Employee, Address Resident Citizens where Exists (Employee, Name);
Drop Tables Employees, Citizens;
|
Ce script génère dans le modèle de données une table intitulée EmployeeAddresses, que vous pouvez afficher comme graphique de type table à l'aide des dimensions Employee et Address
La clause where : where Exists (Employee, Name) signifie que seuls les noms issus de la table Citizens figurant également dans Employees sont chargés dans la nouvelle table. Pour éviter toute confusion, l'instruction Drop supprime les tables temporaires Employees et Citizens.
|
Employee |
Address |
Bill |
New York |
John |
Miami |
Steve |
Chicago |
|
|
Remplacement de l'instruction figurant dans l'échantillon de données de l'exemple précédent qui crée la table EmployeeAddresses par ce qui suit, en utilisant where not Exists.
NonEmployee:
Load Name as Employee, Address Resident Citizens where not Exists (Employee, Name);
|
La clause where inclut not : where not Exists (Employee, Name) signifie que seuls les noms issus de la table Citizens figurant également dans Employees sont chargés dans la nouvelle table.
|
Employee |
Address |
Mary |
London |
Lucy |
Paris |
|