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

Простые параметры SQL

Подсказка

Если вы хотите фильтровать по полю базы данных в запросе, лучше использовать переменные "фильтр поля", у которых другой синтаксис.

Текстовые, числовые и связанные с датой переменные позволяют подставлять простые значения в SQL‑код.

Чтобы добавить простую переменную в SQL‑запрос, заключите переменную в двойные фигурные скобки: {{variable_name}}.

В этом примере определяется текстовая переменная с названием category_filter (название на латинице может быть произвольным):

SELECT
  count(*)
FROM
  products
WHERE
  category = {{category_filter}};

Эти простые переменные просто подставляют значения, заданные виджетом, в заполнитель в коде. Простые переменные используют не такой синтаксис, как фильтры полей.

Вот синтаксис фильтра поля:

WHERE
  {{category}}

А синтаксис простой переменной включает оператор =:

WHERE
  category = {{category}};

Здесь мы не связываем переменную с полем базы данных — мы просто вставляем значение.

Glarus BI прочитает переменную и прикрепит к запросу виджет фильтра, с помощью которого пользователи смогут менять значение, подставляемое в переменную category. Если пользователь введёт "Gizmo" в виджет фильтра, запрос, который выполнит Glarus BI, будет таким:

SELECT
  count(*)
FROM
  products
WHERE
  category = 'Gizmo';

Если вы пишете прямой запрос к MongoDB, он будет выглядеть примерно так: переменная category будет определена внутри выражения match:

[{ $match: { category: {{category}} } }]

простая переменная, которая позволяет выбирать несколько значений

простая переменная с несколькими значениями

Чтобы дать возможность подставлять несколько значений в переменную, нужно написать код так, чтобы «множественные значения» имели смысл при подстановке в запрос. Самый частый способ — использовать WHERE с IN:

SELECT
  *
FROM
  products
WHERE
  category IN ({{category_vars}});

Когда код готов, вам нужно установить параметр "Пользователи могут выбрать" в значение "Несколько значений". Однако в этом случае, скорее всего, вам лучше подойдёт фильтр поля.

Простые SQL‑переменные дают ограниченный выбор типов фильтра

  • Текст: обычное поле ввода;
  • Число: обычное поле ввода;
  • Дата: простой календарь;
  • Логический: двухпозиционный переключатель.

Если вам нужен более «умный» виджет фильтра (например, динамический календарь), используйте переменную фильтра поля.

Как сделать переменную необязательной

См. необязательные переменные.