SQL中嵌入URL参数
更新时间:2023-12-27
在报表或大屏的公开分享时,在公开分享 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 例子中的table
和column
- 如果您想在 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 转换示例如下图,此时column
和table
的值都替换为了默认值,year
由于没有默认值也未传值被替换为了空字符串:
最后,URL 参数中还支持按照英文逗号来分隔从而实现 SQL 中的IN
逻辑,语法是{querys.key(splitComma)}
和{querys.key(splitComma.number)}
,例如下图中year
参数取值是2018,2019,2020
,没有传递year1
参数,生成 SQL 效果如下: