如果使用了,后台会报错:
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}))