Przykład 1:
Exists (Employee)
Zwraca –1 (True), jeśli wartość pola Employee w bieżącym rekordzie już istnieje w jakimkolwiek wcześniej wczytanym rekordzie zawierającym to pole.
Instrukcje Exists (Employee, Employee) i Exists (Employee) są równoważne.
Przykład 2
Exists(Employee, 'Bill')
Zwraca –1 (True), jeśli wartość pola 'Bill' występuje w bieżącej zawartości pola Employee.
Przykład 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;
W efekcie otrzymuje się tabelę, której można użyć w wizualizacji tabeli przy użyciu wymiarów Employee i Address.
Klauzula where w postaci where Exists (Employee) oznacza, że tylko nazwy z tabeli Citizens, które znajdują się także w tabeli Employees, są ładowane do nowej tabeli. Instrukcja Drop usuwa tabelę Employees w celu uniknięcia pomyłek.
Wyniki
|
|
Employee |
Address |
Bill |
New York |
John |
Miami |
Steve |
Chicago |
Przykład 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;
Klauzula where zawiera not: where not Exists (Employee).
To oznacza, że tylko te nazwy z tabeli Citizens, które nie znajdują się w tabeli Employees, są ładowane do nowej tabeli.
Zwróć uwagę, że istnieją dwie wartości dla Lucy w tabeli Citizens, ale tylko jedna jest uwzględniana w tabeli wynikowej. Po załadowaniu pierwszego wiersza z wartością Lucy, jest ona uwzględniona w polu Employee. W związku z tym, gdy sprawdzany jest drugi wiersz, wartość już istnieje.
Wyniki
Pracownik |
Adres |
Mary |
London |
Lucy |
Madrid |
Przykład 5
Ten przykład pokazuje, jak załadować wszystkie wartości.
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;
Aby móc uzyskać wszystkie wartości dla Lucy, zmieniono dwie rzeczy:
-
Poprzednie ładowanie do tabeli Employees zostało wstawione tam, gdzie zmieniono nazwę Employee na Name.
Load Employee As Name;
-
Warunek Where w Citizens został zmieniony na:
not Exists (Name, Employee).
Powoduje to tworzenie pól dla Name i Employee. Kiedy sprawdzany jest drugi wiersz z Lucy, to wartość ta nadal nie istnieje w Name.
Wyniki
Pracownik |
Adres |
Mary |
London |
Lucy |
Madrid |
Lucy |
Paris |