Exemple 1
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.
Les instructions Exists (Employee, Employee) et Exists (Employee) sont équivalentes.
Exemple 2
Exists(Employee, 'Bill')
Renvoie -1 (True) si la valeur de champ 'Bill' se trouve dans le contenu actif du champ Employee.
Exemple 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;
Vous obtenez une table que vous pouvez utiliser dans une visualisation de table à l'aide des dimensions Employee et Address.
La clause where, where Exists (Employee) signifie que seuls les noms issus de la table Citizens et figurant également dans Employees sont chargés dans la nouvelle table. Pour éviter toute confusion, l'instruction Drop supprime la table Employees.
Résultats
|
|
Employee |
Address |
Bill |
New York |
John |
Miami |
Steve |
Chicago |
Exemple 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;
La clause where inclut not : where not Exists (Employee).
Autrement dit, seuls les noms issus de la table Citizens qui ne figurent pas dans Employees sont chargés dans la nouvelle table.
Notez la présence de deux valeurs pour Lucy dans la table Citizens, mais une seule figure dans la table des résultats. Lorsque vous chargez la première ligne avec la valeur Lucy, elle est incluse dans le champ Employee. De ce fait, lorsque la deuxième ligne est vérifiée, la valeur existe déjà.
Résultats
Employee |
Address |
Mary |
London |
Lucy |
Madrid |
Exemple 5
Cet exemple explique comment charger toutes les valeurs.
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;
Pour obtenir toutes les valeurs associées à Lucy, il a fallu modifier deux éléments :
-
Un chargement précédent dans la table Employees a été inséré, pour lequel le nom Employee a été remplacé par Name.
Load Employee As Name;
-
La condition Where de Citizens a été remplacée par :
not Exists (Name, Employee).
Cela crée des champs pour Name et pour Employee. Lorsque la deuxième ligne avec Lucy est vérifiée, elle n'existe toujours pas dans Name.
Résultats
Employee |
Address |
Mary |
London |
Lucy |
Madrid |
Lucy |
Paris |