SQL在WHERE语句里实现条件判断,执行对应的条件
表里有列 A B C D E五列
要实现的条件为:
当len(A)>0 执行的条件为 B=C
否则 执行的条件为 D=E
有没有办法在where语句里实现,或是其它方法
因为有其它语句,而且是已经写好了的,现在是要加个判断,能改动最少就比较好。
------解决方案--------------------
这个要么写一大堆IF/ELSE,要么拼接SQL再用case when来拼
------解决方案--------------------
if else 判断 拼接sql语句吧。
------解决方案--------------------
当len(A)>0 执行的条件为 B=C
否则 执行的条件为 D=E
select * from tablename where (b=c and len(A)>0) or (D=E)
------解决方案--------------------
update tb set B=(case when len(A)>0 then C end) ,D=(case when len(A)<=0 then E end)