SQL

SQL запросы в XQuery

Если база данных WebTutor находится на сервере MS SQL или Oracle, то запросы в XQuery можно писать на SQL. Запросы на SQL в Webtutor, работают быстрее чем запросы на XQuery, а также открывают множество возможностей, которые недоступны при использовании XQuery.

Пример:

// Запрос на XQuery  
arr = XQuery('for $elem in courses where $elem/id=6237456404705184772 return $elem');

// Запрос на SQL  
arr = XQuery('sql:SELECT * FROM courses WHERE id=6237456404705184772');
// Больше SQL
arr = XQuery("sql:SELECT second.subdivision_id FROM subdivision_group_subdivisions main JOIN subdivision_group_subdivisions second ON main.code = second.code WHERE (main.code='0012934' AND second.is_dynamic=0)");

arr = XQuery("
SELECT
c.id AS id,
cs.fullname AS fullname,
c.data.value('collaborator/custom_elems/custom_elem[name="GK_hire_date"][1]/value', 'varchar(512)') AS GK_hire_date,
c.data.value('collaborator/org_name', 'varchar(512)') AS org_name,
c.data.value('collaborator/is_dismiss', 'bit') AS is_dismiss

FROM collaborator AS c 
INNER JOIN collaborators AS cs ON c.id = cs.id 
INNER JOIN positions AS ps ON cs.position_id = ps.id
");

SQL функции в XQuery запросах

В XQuery вы можете использовать некоторые SQL функции. (нет информации по доступным функциям...)

Example:

// Используем SQL функцию DATEADD() в SQL XQuery
arr = XQuery('sql:for $elem in collaborators where $elem/modification_date > DATEADD(day, -5, GETDATE())  return $elem');
Последнее обновление: 9/14/2018, 4:49:50 PM