Exists
(Employee)
|
Liefert -1 (True), wenn der Feldwert Employee im aktuellen Datensatz bereits in einem anderen Datensatz in diesem Feld vorkommt.
|
Exists(Employee,
'Bill')
|
Liefert -1 (True), wenn der Feldwert 'Bill' im aktuellen Inhalt von Feld Employee gefunden wird.
Die Befehle Exists (Employee, Employee) und Exists (Employee) sind gleichwertig.
|
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;
|
Dies liefert im Datenmodell eine Tabelle EmployeeAddresses, die als Tabellenvisualisierung mithilfe der Dimensionen Employee und Address angezeigt werden kann.
Die Bedingung where: where Exists (Employee, Name), bedeutet, dass nur Namen aus der Tabelle Citizens, die sich ebenfalls in Employees befinden, in die neue Tabelle geladen werden. Der Befehl Drop entfernt die temporären Tabellen Employees und Citizens, damit es nicht zu Verwechslungen.
|
Employee |
Address |
Bill |
New York |
John |
Miami |
Steve |
Chicago |
|
|
Ersetzen des Befehls in den Beispieldaten im vorherigen Beispiel, die die Tabelle EmployeeAddresses erstellen, mit dem folgenden Befehl unter Verwendung von where not Exists.
NonEmployee:
Load Name as Employee, Address Resident Citizens where not Exists (Employee, Name);
|
Die Bedingung where beinhaltet not: where not Exists (Employee, Name). Das bedeutet, dass nur Namen aus der Tabelle Citizens, die sich nicht in Employees befinden, in die neue Tabelle geladen werden.
|
Employee |
Address |
Mary |
London |
Lucy |
Paris |
|