数据库SQL的表连接的条件中不能使用case when

如果使用了,后台会报错:

net.sf.jsqlparser.parser.ParseException: Encountered " "CASE" "CASE "" .......

但是能查出数据!

修改:可以使用 and 和 or实现

如:

LEFT JOIN mst_config MCG0
        ON
        (CASE
        WHEN P.status = #{NOTCOR} THEN MCG0.config_key = #{PROSTATUS0}
        WHEN P.status = #{COR} THEN MCG0.config_key = #{PROSTATUS1}
        WHEN P.status = #{GUARDNOTICE} THEN MCG0.config_key = #{PROSTATUS2}
        WHEN P.status = #{APPGUAREP} THEN MCG0.config_key = #{PROSTATUS3}
        WHEN P.status = #{APPTEAINP} THEN MCG0.config_key = #{PROSTATUS4}
        WHEN P.status = #{APPLYCOMPLETE} THEN MCG0.config_key = #{PROSTATUS90}
        WHEN P.status = #{AGENCYCOMPLETE} THEN MCG0.config_key = #{PROSTATUS91}
        END)

可修改为:

LEFT JOIN mst_config MCG0
        ON
        ((P.status = #{NOTCOR} AND MCG0.config_key = #{PROSTATUS0}) OR
        (P.status = #{COR} AND MCG0.config_key = #{PROSTATUS1}) OR
        (P.status = #{GUARDNOTICE} AND MCG0.config_key = #{PROSTATUS2}) OR
        (P.status = #{APPGUAREP} AND MCG0.config_key = #{PROSTATUS3}) OR
        (P.status = #{APPTEAINP} AND MCG0.config_key = #{PROSTATUS4}) OR
        (P.status = #{APPLYCOMPLETE} AND MCG0.config_key = #{PROSTATUS90}) OR
        (P.status = #{AGENCYCOMPLETE} AND MCG0.config_key = #{PROSTATUS91}))

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值