where列名=null查询没结果,列名isnull查询有正确结果

目前有个需求,当finereport数据集需要用到某个参数时,参数值为空的时候,where 列名=null查询没结果,列名 is null查询有正确结果.请问怎么写sql无论where 列名=参数 是否为空都能正确查询出正确结果

luozhiwei 发布于 2020-11-25 15:34 (编辑于 2020-11-25 15:37)
1min目标场景问卷 立即参与
回答问题
悬赏:5 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
shirokoLv6资深互助
发布于2020-11-25 15:36(编辑于 2020-11-25 16:36)

sql没有 =null这个语法啊

where 1=1
${if(len(参数名)=0," AND 字段名 IS NULL"," AND 字段名 IN ('"+参数名+"')")}

---

where 1=1 
${IF(INARRAY("null",SPLIT(参数名,"','"))>0," AND (字段名 IN ('"+参数名+"') OR 字段名 IS NULL)"," AND 字段名 IN ('"+参数名+"')")}
  • luozhiwei luozhiwei(提问者) 大佬,finereport 里的数据集where a=\'${land}\',参数land为空是怎么弄啊,=null肯定是空结果
    2020-11-25 15:39 
  • shiroko shiroko 回复 luozhiwei(提问者) 编辑了
    2020-11-25 15:42 
  • zsh331 zsh331 AND (字段名 IS NULL or 字段名 =\'\')
    2020-11-25 15:48 
  • shiroko shiroko 回复 zsh331 你的意思只要选了就必定查出空值的吗?虽然不知道他要的是不是那样,但是不如直接加到外面or了
    2020-11-25 15:49 
  • zsh331 zsh331 回复 shiroko 一次能答完,何必分二次= =#
    2020-11-25 15:50 
最佳回答
0
LarryAbbyLv5中级互助
发布于2020-11-25 15:38

 ${IF(LEN(参数名)=0,""," AND  字段名 IN  ('"+参数名+"')")} 


  • luozhiwei luozhiwei(提问者) 参数值为“null”,不是“”怎么办。。
    2020-11-25 16:03 
  • LarryAbby LarryAbby 回复 luozhiwei(提问者) 参数一般不会有null吧,要么下拉框里选值,要么不选择那就是空,难道你的下拉框中有个null选项嘛?那这个null就是字符了,也是传进去比较呢
    2020-11-25 17:45 
最佳回答
0
用户T4621400Lv3见习互助
发布于2020-11-26 10:28

sql没有=null这个语法,要是判断可以用is null或者安全等于<=>来判断null值

  • 4关注人数
  • 489浏览人数
  • 最后回答于:2020-11-26 10:28
    请选择关闭问题的原因
    确定 取消
    返回顶部