FR小白,无sql基础,学习全局参数时,讲到了数据集设置参数,实现多选筛选出数据
视频里用的是 where 地区 = 参数 ,然后要设置分隔符为 ',' sql写法为
select * from 销量 where 1=1 and ( {参数} like '%'||地区||'%' or 地区 like '%'||{参数}||'%' )
我在想这种配置方法只适合固定选项的场景,例如从字典里选 华东,华北 拼成 '华东','华北' 在 sql里实现查询
但这种写法无法满足自定义输入文本的查询,例如用户输入 华东华北 字符串时 就搞不定了.
自己研究了一下可以这样写
select * from 销量 where 1=1 and '华东华中华北' like '%'||地区||'%'
加上参数的话就是
select * from 销量 where 1=1 and '${area}' like '%'||地区||'%'
(个人理解A like B 表示 ,在A里面找,看有没有B ,例如输入 华东东 可以找到 华东 )
我查了一下 FRdemo用的是SQlite 没有concat拼接 也不能用 + 拼接 % ,得用 ||
更全面的写法是
select * from 销量 where 1=1 and ( '${area}' like '%'||地区||'%' or 地区 like '%'||'${area}'||'%' )
这样还可以实现输入华,找到华北和华东
效果如下
|