当前位置: 代码迷 >> Sql Server >> SQL在WHERE话语里实现条件判断,执行对应的条件
  详细解决方案

SQL在WHERE话语里实现条件判断,执行对应的条件

热度:12   发布时间:2016-04-24 10:22:52.0
SQL在WHERE语句里实现条件判断,执行对应的条件
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)
------解决方案--------------------
引用:
Quote: 引用:

当len(A)>0 执行的条件为 B=C
否则 执行的条件为 D=E

select * from tablename where (b=c and len(A)>0) or (D=E)


哈哈哈

select * from tablename where (b=c and len(A)>0) or (D=E and len(A)=0)
......


update tb set B=(case when len(A)>0 then C  end) ,D=(case when len(A)<=0 then E end)

  相关解决方案