请问下参数里面可不可以加条件?

${if(len(dept)==0,""," and a = '"+dept+"'")}

请问下这里面可不可以加WHERE 或者CASE WHEN条件  ,如何加,加到哪里 ,我之前好像看到过,但是现在找不到了,求大神帮帮忙

类似${if(len(dept)==0,""," and a = '"+dept+"'" where in(select...) )}


FineReport hosea 发布于 2018-11-10 08:27 (编辑于 2018-11-10 08:41)
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
3
flyingsnakeLv6资深互助
发布于2018-11-10 09:53

可以的

你可以这样来构建sql

select

id

${if(len(dept)==0," ,字段b"," ,字段A")}

${if(len(code)==0," ,字段c"," ,字段d")}

from

${if(len(表)==0,"表aaa"," 表bbb")}


where

1=1



来实现,列\表\条件等多个地方的替换

只要满足最终的运行结果,是合法的sql文,就可以被执行



最佳回答
2
zsh331Lv8专家互助
发布于2018-11-10 08:30(编辑于 2018-11-10 08:50)

楼主:只要符合SQL语法,都支持。

语法类似这样:

select * from tabname where 1=1 ${if(len(dept)==0,""," and "+dept+" in ( select... ) ")}


  • hosea hosea(提问者) 不是,我是想知道能不能写到参数里面,像${if(len(dept)==0,\"\",\" and a = \'\"+dept+\"\'\" where 1=1 case when......)} 主要是想通过动态的条 执行对应的CASE WHEN的值
    2018-11-10 08:33 
  • zsh331 zsh331 回复 hosea(提问者) 后面再加一个where是什么鬼~ select * from tabname where 1=1 ${if(len(dept)==0,\"\",\" and \"+dept+\" in ( select... ) \")}
    2018-11-10 08:49 
  • zsh331 zsh331 回复 hosea(提问者) 意思是把选择的”控件值“在SQL中当“字段“ 并非当”值”去使用?
    2018-11-10 08:54 
  • macro_hard macro_hard 回复 hosea(提问者) 是问if里再写个switch函数?
    2018-11-10 09:11 
  • zsh331 zsh331 回复 macro_hard 其实我也没有看明白,他到底要实现什么效果…
    2018-11-10 13:57 
  • 3关注人数
  • 468浏览人数
  • 最后回答于:2018-11-10 09:53
    请选择关闭问题的原因
    确定 取消
    返回顶部