Перейти к содержанию

Написание запросов на языке формул Comindware

В данной статье представлен синтаксис и примеры предложений и операторов для запросов на языке формул Comindware Platform.

Операторы запросов

from  
Описание

Запрос должен начинаться с предложения from. Предложение from состоит из следующих частей: 

  • оператор from;
  • локальная переменная, которая представляет отдельные элементы источника данных (например, запись в шаблоне или аккаунт);
  • оператор in;
  • источник данных, по которому выполняется запрос.
Синтаксис

from переменная in источник_данных

Аргументы

переменная: имя локальной переменной

источник_данных:

  • db->имя_шаблона: шаблон записи, шаблон аккаунта;
  • $путь->к->атрибуту: атрибут шаблона;
  • from переменная2 in источник_данных2 where условие2 select атрибут2: подзапрос;
where  
Описание Предложение  where задаёт условие выборки элементов в источнике данных. Условие может содержать несколько предикатов, возвращающих true или false. В условие можно включить несколько предикатов с помощью логических операторов && (И), || (ИЛИ), == (РАВНО), != (НЕ РАВНО) и функций AND(), OR(), EQUALS(), IF(), NOT(), ANY(), ALL().
Синтаксис where условие
Аргументы условие: значение логического типа или выражение, возвращающее true или false
orderby  
Описание

Предложение orderby позволяет отсортировать результаты запроса по значению атрибута искомых объектов. Предложение orderby следует использовать между предложениями where и select. Предложение orderby состоит из следующих частей:

  • оператор  orderby;
  • атрибут объекта, по которому следует выполнять сортировку результатов запроса;
  • оператор порядка сортировки — ascending по возрастанию (по умолчанию, можно не указывать) или descending — по убыванию.
 Синтаксис
  • Сортировка по возрастанию:
    orderby атрибут_объекта ascending
    или
    orderby атрибут_объекта
  • Сортировка по убыванию:
    orderby атрибут_объекта descending
Аргументы атрибут_объекта: атрибут шаблона или иного объекта.
select  
Описание Предложение select задаёт, атрибут объекта, значения которого вернёт запрос. В конечном результате учитываются как работа предыдущих операторов, так и любые выражения в самом операторе select.
Синтаксис select атрибут_объекта 
Аргументы атрибут_объекта: атрибут шаблона или иного объекта. 

Примечание

  • Следующие слова нельзя использовать в запросе в качестве локальной переменной, так как они зарезервированы как системные:
    • andascendingbetweenbydbdescendingequalsfromgroupinintoitemjoinletonorderbyselectsourcewhere
    • слова, начинающиеся с подчеркивания (_)
    • имена функций и литералы
  • Предложение from может содержать подзапросы (также начинающиеся с from).

Примеры запросов

  • Запрос записей районов Москвы с сортировкой по убыванию названия района.
    from a in db->Cities 
    where a->CityName == "Москва"
    orderby a->Districts->DistrictName descending
    select a->Districts
  •  Запрос названий и авторов книг, у которых указан автор, с сортировкой по возрастанию имени автора и выводом в формате «Название: название книги. Автор: имя автора».
    from book in db->Books 
    where NOT(EMPTY(book->Author))
    orderby book->Author->Name
    select CONCAT(LIST('Название: ', book->Name, '. Автор: ', book->Author->Name))