查询条件多值模糊查询

您所在的位置:网站首页 查询条件表达式 查询条件多值模糊查询

查询条件多值模糊查询

#查询条件多值模糊查询| 来源: 网络整理| 查看: 265

报表条件查询中经常会涉及到模糊查询和多值查询的情况。模糊查询可根据用户输入在参数框中输入的关键字进行模糊匹配,sql实现是通过like条件完成的。多值查询在集智数据平台中也提供了多种编辑风格,如下拉列表,下拉数据集,下拉树等都是支持多选的,用户选择的参数以字符串组,整数组等形式传递给报表模板,报表模板接收参数在sql中通过in条件就可以完成多值匹配。但是用户往往还有一种需求就是两种查询的结合,用户需要在如何框中输入多个关键字,根据我多个关键字进行模糊查询。比如用户要根据商品名称进行多值模糊查询,输入为“卡通,可爱,发饰”,那么将查询商品名称中还含有卡通或可爱或发饰的商品列表。

 

在集智数据平台的报表系统中,利用宏完成sql查询条件的拼接,根据用户输入的以“,”分割的多个查询关键字,拼接成多个 or 相连的like条件,这样即可实现上述需求。

 

具体实现:1.参数定义:  其中spmc是普通参数,为用户填入的参数值;spmc2是动态参数,根据spmc拼接查询条件,值表达式为:if(spmc == null or spmc==”",”1=1″,”name like ‘%”+rplc(@spmc,”,”,”%’ or name like ‘%”)+”%’”)。这里的动态参数和后面的宏值是一样的,它只是用于在报表结果页面里面显示查询条件的拼接结果。2.宏定义:  动态宏macro1,值表达式为:if(spmc == null or spmc==”",”1=1″,”name like ‘%”+rplc(@spmc,”,”,”%’ or name like ‘%”)+”%’”)。在spmc为空的情况下,返回1=1,否则先用字符串替换函数rplc()替换参数中的”,”为“%’ or name like ‘%”)+”%’”(注意其中的空格),其结果再和前后字符串拼接得到最终的查询条件。如用户输入“卡通,可爱,发饰”,那么rplc替换结果为“卡通%’ or name like ‘%可爱%’ or name like ‘%发饰”,再和前后字符串拼接得到最终结果name like ‘%卡通%’ or name like ‘%可爱%’ or name like ‘%发饰%’。3.数据集定义:  这里在查询条件中用到了动态宏macro1。4.参数模板定义:  其中B2单元格中用到了动态参数spmc2,可以在报表模板中显示sql查询条件。

实现效果:没有输入查询条件时,默认查出所有商品数据,查询条件为1=1。  输入查询条件“卡通,心形”,查出商品名称中包含卡通或心形的商品,查询条件为name like ‘%卡通%’ or name like ‘%心形%’。  

更多了解各种复杂问题的处理,可以参考:从多个不同的业务系统中抽取和采集数据,数据分析,数据抽取,让业务用户随时可以自己定义查询报表。

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3