Функция Exists() определяет, загружено ли определенное значение поля в поле в скрипте загрузки. Функция возвращает значение TRUE или FALSE, таким образом, ее можно использовать в предложении where оператора LOAD или функции IF.
Синтаксис:
Exists(field_name [, expr] )
Тип возврата данных: Булево значение
Аргументы:
| Аргумент | Описание | 
|---|---|
| field_name | Имя поля, в котором нужно искать значение. Можно использовать явное имя поля без кавычек. Поле уже должно быть загружено скриптом. Это означает, нельзя обратиться к полю, которое загружено в предложении, находящемся далее вниз в скрипте. | 
| expr | Значение, существование которого требуется проверить. Можно использовать явное значение или выражение, которое ссылается на одно или несколько полей в текущем операторе load. Примечание к информацииНа поля, которые не включены в текущий оператор load, сослаться нельзя. Этот аргумент дополнительный. Если его опустить, функция проверит, существует ли значение field_name в текущей записи. | 
Пример 1:
Exists (Employee)
Возвращает -1 (True), если значение поля Employee в текущей записи уже существует в любой ранее прочитанной записи, содержащей это поле.
Пример 2:
Exists(Employee, 'Bill')
Возвращает -1 (True), если значение поля 'Bill' найдено в текущем содержимом поля Employee.
Операторы Exists (Employee, Employee) и Exists (Employee) эквивалентны.
Пример 3:
В результате в модели данных будет получена таблица с именем Citizens, которую можно просмотреть как диаграмму таблицы с помощью измерений Employee и Address.
Предложение where: where Exists (Employee), означает только имена из таблицы Citizens, загруженные в новую таблицу, которые также находятся в таблице Employees. Оператор Drop удаляет временную таблицу Employees во избежание путаницы.
| Employee | Address | 
|---|---|
| Bill | New York | 
| John | Miami | 
| Steve | Chicago | 
Пример 4:
Предложение where включает not: where not Exists (Employee).
Это означает, что только имена из таблицы Citizens, которые не находятся в таблице Employees, загружаются в новую таблицу.
Обратите внимание, что есть два значения для Lucy в таблице Citizens, но только одно включается в результирующую таблицу. При загрузке первой строки со значением Lucy оно включается в поле Employee. Следовательно, когда проверяется вторая строка, значение уже существует.
| Employee | Address | 
|---|---|
| Mary | London | 
| Lucy | Madrid | 
Пример 5:
Этот пример показывает, как загрузить все значения.
Для получения всех значений для Lucy были изменены две вещи:
- 
                        Предшествующая загрузка в таблицу Employees была вставлена, где Employee было переименовано в Name. Load Employee As Name; 
- 
                        Условие Where в Citizens было изменено на: not Exists (Name, Employee). 
Это создает поля для Name и Employee. Когда проверяется вторая строка с Lucy, она по-прежнему не существует в Name.
| Employee | Address | 
|---|---|
| Mary | London | 
| Lucy | Madrid | 
| Lucy | Paris | 
Данные, используемые в примере: