分享一个输入自定义内容匹配列的值的sql

楼主
我是社区第263364位番薯,欢迎点我头像关注我哦~

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}'||'%'  )

这样还可以实现输入华,找到华北和华东

效果如下

分享扩散:

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

0回帖数 1关注人数 26浏览人数
最后回复于:昨天 18:07

任务进行中

    话题进行中...
    返回顶部 返回列表