根据不同选择执行不同的查询条件

根据不同选择执行不同的查询条件

例如选择一个字段为1,执行一个查询条件,选择一个字段为2,执行另一个查条件

history 发布于 2019-1-7 11:43
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
5
zsh331Lv8专家互助
发布于2019-1-7 11:53(编辑于 2019-1-7 13:52)
select * from tabname where 1=1 ${if(参数名=1," and 字段1='内容1'"," and 字段2='内容2'")}

SQL结构大概这样,视情况自行扩展~

你的SQL语句中 where 都没有~不管sql如何千变万化~至少得保证语法正确呀~

SELECT
*
FROM
[ BMMES_JM ].[ dbo ].[ M_JOB_REPORTWORK ] where 1 = 1 
${if(gdxh == "B"," and RpABMaterial = 'B' ",
if(gdxh=="A"," and CHARINDEX('_',RpERPWorkOrder)=0 and RpABMaterial = 'A' ",
if(gdxh=="返花", " and CHARINDEX('_',RpERPWorkOrder)>0 and RpABMaterial = 'A' " ,
 " and RpAuditStatus ='1'")))}

image.png

  • history history(提问者) 如果写成存储过程呢?
    2019-01-07 13:15 
  • history history(提问者) 我原来是这样的 select * from [BMMES_JM].[dbo].[M_JOB_REPORTWORK] ${if(gdxh==\"B\",\" and RpABMaterial = \'B\' \",if(gdxh==\"A\",\" and CHARINDEX(\'_\',RpERPWorkOrder)=0 and RpABMaterial = \'A\' \",if(gdxh==\"返花\", \" and CHARINDEX(\'_\',RpERPWorkOrder)>0 and RpABMaterial = \'A\' \" , \" and RpAuditStatus =\'1\'\")))}
    2019-01-07 13:22 
  • zsh331 zsh331 回复 history(提问者) 答案更新了,你再看看~亲,注意细节呀~
    2019-01-07 13:53 
  • history history(提问者) 回复 zsh331 如果改成存储过程,怎么改
    2019-01-07 13:56 
  • zsh331 zsh331 回复 history(提问者) sql用case when转换下就行...
    2019-01-07 14:04 
  • 2关注人数
  • 1349浏览人数
  • 最后回答于:2019-1-7 13:52
    请选择关闭问题的原因
    确定 取消
    返回顶部