#sql #variables #grafana
Вопрос:
У меня есть 2 переменные.
- клиент.
Запрос:SELECT title AS __text, concat('"', id::text,'"') AS __value FROM clients WHERE active=true
Для значения я использую объединение в кавычки, так как некоторые значения могут принимать строковые значения.
- приказ. Заказ:
select name from orders where concat('"',client_id::text,'"') =ANY(ARRAY[${client:csv}])
И соединение между 2 переменными не работает — я получаю ошибку типа:
Templating [order] Error updating options: pq: column “1106102844810989568” does not exist
Без объединения join работает хорошо, но это не целевой случай.
Что я делаю не так?
Комментарии:
1. Привет, не могли бы вы предоставить некоторые примеры данных, чтобы лучше понять вашу проблему? Что это значит
some values can be strings-values
. Первоначально они являются идентификаторами и по умолчанию целыми числами.2. Привет, наверное, я неправильно выразил идею. Первоначально они являются идентификаторами. Но по некоторым причинам, без приведения к цитатам, join не работает должным образом
3. Что такое
client_id::text
илиclient:csv
? Из сообщения об ошибке следует, что оно имеет значение «1106102844810989568». Можете ли вы использовать инспектор запросов в Графане и проверить сгенерированный запрос?
Ответ №1:
Решение заключается в следующем: я заменил ${client:csv} на ${client:sqlstring}
Таким образом, запрос для 2 переменных выглядит следующим образом:
select name from orders where concat('"',client_id::text,'"') =ANY(ARRAY[${client:sqlstring}])