Exists — функция скрипта
Функция 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 |
Данные, используемые в примере: