在查询 where 子句中使用 Grafana 文本框面板变量

Posted

技术标签:

【中文标题】在查询 where 子句中使用 Grafana 文本框面板变量【英文标题】:Using Grafana textbox panel variable in query where clause 【发布时间】:2021-06-19 09:06:15 【问题描述】:

有没有办法在状态面板查询的 where 子句中使用文本框面板变量?

我的仪表板有一个面板变量(文本框类型)当前月份的变量 ($CURRENT_MONTH),其值为 Feb 2021 该变量用于使用$CURRENT_MONTH更新面板的标题

我需要在面板的查询中使用该变量来完成 where 子句逻辑

SELECT
  availability
FROM "mytable"
where
  dashboard='OPS Dashboard' and period=$CURRENT_MONTH

并抛出错误 pq:“2021”或附近的语法错误

(如果我将 $CURRENT_MONTH 替换为 'Feb 2021' 就可以了)

它不起作用并抛出错误:

【问题讨论】:

【参考方案1】:

你需要注意引号:

SELECT availability 
FROM "mytable" 
WHERE dashboard='OPS Dashboard' 
  AND period='$CURRENT_MONTH'

你的作业:使用 Grafana 查询检查器并检查生成的带引号和不带引号的 SQL - 那么你应该在这里了解引号的原因。

【讨论】:

以上是关于在查询 where 子句中使用 Grafana 文本框面板变量的主要内容,如果未能解决你的问题,请参考以下文章

Grafana Postgres 使用可具有多个值的 Where 查询时出错

在 WHERE 子句中使用 SELECT 查询

在 where 子句中执行 Oracle 查询

在子查询中使用内联函数(在 WHERE 子句中)

使用更改的 WHERE 子句访问直通查询

无法使用 pypyodbc 在 python 中使用 where 子句运行 mssql 选择查询