小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

查詢條件多值模糊查詢

 集微筆記 2013-12-02

報表條件查詢中經(jīng)常會涉及到模糊查詢和多值查詢的情況。模糊查詢可根據(jù)用戶輸入在參數(shù)框中輸入的關(guān)鍵字進行模糊匹配,sql實現(xiàn)是通過like條件完成的。多值查詢在集智數(shù)據(jù)平臺中也提供了多種編輯風格,如下拉列表,下拉數(shù)據(jù)集,下拉樹等都是支持多選的,用戶選擇的參數(shù)以字符串組,整數(shù)組等形式傳遞給報表模板,報表模板接收參數(shù)在sql中通過in條件就可以完成多值匹配。但是用戶往往還有一種需求就是兩種查詢的結(jié)合,用戶需要在如何框中輸入多個關(guān)鍵字,根據(jù)我多個關(guān)鍵字進行模糊查詢。比如用戶要根據(jù)商品名稱進行多值模糊查詢,輸入為“卡通,可愛,發(fā)飾”,那么將查詢商品名稱中還含有卡通或可愛或發(fā)飾的商品列表。


 

集智數(shù)據(jù)平臺報表系統(tǒng)中,利用宏完成sql查詢條件的拼接,根據(jù)用戶輸入的以,分割的多個查詢關(guān)鍵字,拼接成多個 or 相連的like條件,這樣即可實現(xiàn)上述需求。

 


具體實現(xiàn):
1.
參數(shù)定義:
  
其中spmc是普通參數(shù),為用戶填入的參數(shù)值;spmc2是動態(tài)參數(shù),根據(jù)spmc拼接查詢條件,值表達式為:if(spmc == null or spmc==”",”1=1″,”name like ‘%”+rplc(@spmc,”,”,”%’ or name like ‘%”)+”%’”)。這里的動態(tài)參數(shù)和后面的宏值是一樣的,它只是用于在報表結(jié)果頁面里面顯示查詢條件的拼接結(jié)果。
2.
宏定義:
  
動態(tài)宏macro1,值表達式為:if(spmc == null or spmc==”",”1=1″,”name like ‘%”+rplc(@spmc,”,”,”%’ or name like ‘%”)+”%’”)。在spmc為空的情況下,返回1=1,否則先用字符串替換函數(shù)rplc()替換參數(shù)中的”,”“%’ or name like ‘%”)+”%’”(注意其中的空格),其結(jié)果再和前后字符串拼接得到最終的查詢條件。如用戶輸入卡通,可愛,發(fā)飾,那么rplc替換結(jié)果為卡通%’ or name like ‘%可愛%’ or name like ‘%發(fā)飾,再和前后字符串拼接得到最終結(jié)果name like ‘%卡通%’ or name like ‘%可愛%’ or name like ‘%發(fā)飾%’。
3.
數(shù)據(jù)集定義:
  
這里在查詢條件中用到了動態(tài)宏macro1。
4.
參數(shù)模板定義:
  
其中B2單元格中用到了動態(tài)參數(shù)spmc2,可以在報表模板中顯示sql查詢條件。


實現(xiàn)效果:
沒有輸入查詢條件時,默認查出所有商品數(shù)據(jù),查詢條件為1=1。
  
輸入查詢條件卡通,心形,查出商品名稱中包含卡通或心形的商品,查詢條件為name like ‘%卡通%’ or name like ‘%心形%’。
  


更多了解各種復雜問題的處理,可以參考:從多個不同的業(yè)務(wù)系統(tǒng)中抽取和采集數(shù)據(jù),數(shù)據(jù)分析,數(shù)據(jù)抽取讓業(yè)務(wù)用戶隨時可以自己定義查詢報表。


 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多