MYSQL中ON条件怎么进行if判断(可以不用if,只要是能进行判断执行就行)

SQL查询原型如下

SELECT * FROM 表A LEFT JOIN 表B ON concat(表A.字段a,'-',表A.字段b,REPLACE ( 表A.字段c, 0, '' )) =  表B.字段a)

现在的需求是在ON条件中,如果concat(表A.字段a,'-',表A.字段b,REPLACE ( 表A.字段c, 0, '' )) != 表B.字段a),那么执行concat(表A.字段a,'-',表A.字段b) = 表B.字段a)
这种SQL语句应该怎么写?


这个看看是否有帮助

用case when 或者 decode都行

SELECT * FROM 表A LEFT JOIN 表B ON 
case when concat(表A.字段a,'-',表A.字段b,REPLACE ( 表A.字段c, 0, '' )) != 表B.字段a
 then concat(表A.字段a,'-',表A.字段b)  
end = 表B.字段a

SELECT * FROM 表A LEFT JOIN 表B ON 
deocde( concat(表A.字段a,'-',表A.字段b,REPLACE ( 表A.字段c, 0, '' )) , 
表B.字段a,
null,
 concat(表A.字段a,'-',表A.字段b)  
)=表B.字段a