Oracle里面怎么写if判断

如图,参数:时间维度会有4个:年月周日,希望达到的效果是一个维度查询一段sql,但是目前直接在数据集写报无效sql语句,请问需要怎么做?企业微信截图_20230228164852.png

SQL 允泽 发布于 2023-2-28 16:51
1min目标场景问卷 立即参与
回答问题
悬赏:0 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
Z4u3z1Lv6专家互助
发布于2023-2-28 16:53(编辑于 2023-2-28 17:02)

if(条件1,SQL1,IF(条件2,SQL2,SQL3))

---------------

简单例子 type_为 姓名时根据    name字段查询;type_为 班级 时根据    classno 字段查询;其它情况按course查询 (复杂的写法)

${if(type_=="姓名","SELECT * FROM STSCORE WHERE NAME LIKE '%"+name_+"%'",IF(type_=="班级","SELECT * FROM STSCORE WHERE classno LIKE '%"+name_+"%'","SELECT * FROM STSCORE WHERE course LIKE '%"+name_+"%'"))}

简单点的写法

SELECT * FROM STSCORE WHERE ${SWITCH(type_,"姓名","NAME","班级","classno",type_,"course")} LIKE '%"+name_+"%'

  • 允泽 允泽(提问者) 按您的写法还是报无效sql语句
    2023-02-28 17:01 
  • Z4u3z1 Z4u3z1 回复 允泽(提问者) 上边补充了一个例子
    2023-02-28 17:04 
  • 1关注人数
  • 311浏览人数
  • 最后回答于:2023-2-28 17:02
    请选择关闭问题的原因
    确定 取消
    返回顶部