查询为空,空值不显示问题

捕获2.PNG如图,如果我只给一个查询条件,制造商为“沈阳”,那么制造商为沈阳,NSN码为空的数据不显示怎么解决???

FineReport 小锐啦咔咔 发布于 2019-8-30 09:36
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
郁金香Lv2见习互助
发布于2019-8-30 09:41

参考这个:

http://bbs.fanruan.com/wenda/question1/118773.html

就是sql拼接的时候判断一下参数,然后再拼接后面的条件

  • 小锐啦咔咔 小锐啦咔咔(提问者) SELECT * FROM dbo.[OEM$] where 制造商 like \'%${制造商}%\' and DESCRIPTION like \'%${DESCRIPTION}%\' and NSN like \'%${NSN码}%\' and PART_NO like \'%${PART_NO}%\' and 1=1 ${if(len(NSN) == 0,\" and ( NSN = \'\' or NSN is null )\",\" and NSN = \'\" + NSN + \"\'\")} 这样不对啊??
    2019-08-30 09:48 
  • 郁金香 郁金香 回复 小锐啦咔咔(提问者) 不对。按你的说法,你这样的情况应该这么写: SELECT * FROM dbo.[OEM$] where 1=1 ${if(len(NSM)==0,\'AND 制造商 like \\\'%${制造商}%\\\' AND ( NSN = \\\'\\\' or NSN is null )\\ \'} ${IF(其他情况),\'其他sql条件\',\'其他表达式\'}
    2019-08-30 09:58 
最佳回答
0
张洪威Lv6高级互助
发布于2019-8-30 09:39

sql  里面加过滤。

where len(NSN码字段)>0

  • 小锐啦咔咔 小锐啦咔咔(提问者) SELECT * FROM dbo.[OEM$] where 制造商 like \'%${制造商}%\' and DESCRIPTION like \'%${DESCRIPTION}%\' and NSN like \'%${NSN码}%\' and PART_NO like \'%${PART_NO}%\' 怎么加啊?加了不对啊
    2019-08-30 09:46 
最佳回答
0
凌建Lv7高级互助
发布于2019-8-30 10:03

WHERE 1=1 ${if(len(参数名) == 0,"","and 字段名 in ('" + 参数名 + "')")}


改下

最佳回答
0
浪兔Lv7初级互助
发布于2019-8-30 10:06


${if(len(NSN控件名) = 0,"","and NSN = 'NSN控件名'")}

  • 5关注人数
  • 898浏览人数
  • 最后回答于:2019-8-30 10:06
    请选择关闭问题的原因
    确定 取消
    返回顶部