Exists  — funkcja skryptu
                Funkcja Exists() określa, czy podana wartość pola została już załadowana w polu w skrypcie ładowania. Funkcja zwraca wartość TRUE lub FALSE, dzięki czemu może zostać użyta w klauzuli where instrukcji LOAD lub funkcji IF.
Składnia:
Exists(field_name [, expr] )
Typ zwracanych danych: wartość logiczna
Argumenty:
| Argument | Opis | 
|---|---|
| field_name | 
                                 Nazwa pola, w którym chcesz wyszukać wartość. Można użyć konkretnej nazwy pola bez cudzysłowów. Pole musi być już załadowane przez skrypt. Oznacza to, że nie można odnosić się do pola, które jest ładowane w klauzuli znajdującej się dalej w skrypcie.  | 
                        
| expr | 
                                 Wartość, której istnienie chcemy sprawdzić. Można użyć konkretnej wartości lub wyrażenia, które odnosi się do jednego lub kilku pól w bieżącej instrukcji LOAD. InformacjaNie można odnosić się do pól, które nie są zawarte w aktualnej instrukcji LOAD. 
                                Ten argument jest opcjonalny. W przypadku jego pominięcia funkcja sprawdzi, czy wartość field_name w bieżącym rekordzie już istnieje.  | 
                        
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.
Przykład 2:
Exists(Employee, 'Bill')
Zwraca –1 (True), jeśli wartość pola 'Bill' występuje w bieżącej zawartości pola Employee.
Instrukcje Exists (Employee, Employee) i Exists (Employee) są równoważne.
Przykład 3:
W efekcie otrzymuje się tabelę o nazwie Citizens w modelu danych, którą można wyświetlać jako wykres 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 umożliwia usunięcie tabeli tymczasowej Employees w celu uniknięcia pomyłek.
| Employee | Address | 
|---|---|
| Bill | New York | 
| John | Miami | 
| Steve | Chicago | 
Przykład 4:
Klauzula where uwzględnia not: where not Exists (Employee).
Oznacza to, że do nowej tabeli ładowane są tylko te nazwy z tabeli Citizens, których nie ma w Employees.
Zauważ, że w tabeli Citizens znajdują się dwie wartości Lucy, ale tylko jedna z nich jest uwzględniona w tabeli wyników. Po załadowaniu pierwszego wiersza wartość Lucy jest umieszczana w polu Employee. W związku z tym, gdy sprawdzany jest drugi wiersz, wartość już istnieje.
| Employee | Address | 
|---|---|
| Mary | London | 
| Lucy | Madrid | 
Przykład 5:
Ten przykład pokazuje, jak załadować wszystkie wartości.
Aby móc uzyskać wszystkie wartości dla Lucy, zmieniono dwie rzeczy:
- 
                        
Wstawiono poprzedzającą instrukcję LOAD w celu ładowania do tabeli Employees, gdzie zmieniono nazwę Employee na Name.
Load Employee As Name;
 - 
                        
Warunek Where w Citizens zmieniono na:
not Exists (Name, Employee).
 
Powoduje to utworzenie pól dla Name i Employee. Kiedy sprawdzany jest drugi wiersz z Lucy, to nadal nie istnieje w Name.
| Employee | Address | 
|---|---|
| Mary | London | 
| Lucy | Madrid | 
| Lucy | Paris | 
Dane zastosowane w przykładzie: