SQL中嵌入URL参数

更新时间:2020-02-10

在报表或大屏的公开分享时,在公开分享 URL 中您可以加入额外自定义的查询参数,并将其嵌入至图表或过滤条件的 SQL 语句中

例如,您的报表的公开分享的 URL 本来是:

https://sugar.baidubce.com/dashboard/XXXXXX

您可以在 URL 中加入这些参数如「?table=users&column=name&year=2018」,在浏览器上访问的 URL 改成以下:

https://sugar.baidubce.com/dashboard/XXXXXX?table=users&column=name&year=2018

如何开发调试

要在编辑开发报表或者大屏时,进行 URL 参数功能的调试,需要您手动在编辑页面的 URL 中加参数,例如,您打开一个报表页面,并进入对应的编辑页面:

图片

然后,您需要自己手动更改浏览器的 url,加上你需要加的参数,如下图,注意:加上参数之后一定要回车来刷新页面让参数生效

图片

  • 这样,在页面中图表的 SQL 模型中可以将 URL 参数嵌入到 SQL 语句的任何地方(如 select 中,表名,where 条件等)。

  • SQL 中嵌入 URL 参数的格式为{querys.key},其中key就是 URL 中参数的名称,例如上面 URL 例子中的tablecolumn

  • 如果您想在 URL 中某个 key 未传值的情况下指定一个默认值,那么嵌入 URL 参数的格式为{querys.key || default_value},将 default_value 替换为默认值即可。

  • 如果在 URL 中某个 key 未传值的情况下,您想将整体的 where 限制条件替换为 1=1, 您可以这样写 {querys.key || 1=1},例如: where year = {querys.year || 1=1},在 year 参数未传递取值时,这条语句将会被替换为:where 1=1

当 URL 如上例所示,其中table,column,year全部有值时 SQL 转换示例如下图:

图片

当 URL 中没有table,column,year这些参数时 SQL 转换示例如下图,此时columntable的值都替换为了默认值,year由于没有默认值也未传值被替换为了空字符串:

图片

最后,URL 参数中还支持按照英文逗号来分隔从而实现 SQL 中的IN逻辑,语法是{querys.key(splitComma)}{querys.key(splitComma.number)},例如下图中year参数取值是2018,2019,2020,没有传递year1参数,生成 SQL 效果如下:

图片

本页内容