SQLServer_where添加类似ifelse条件(casewhen)

java

		if (status!=null && !status.equals(""))
		{
			
			wheresql+="AND ISNULL(h.address, '') = 'hangzhou' ";
			if (status.equals("1")){//是
				wheresql+=" and y.is=1 ";
			}
			if (status.equals("0")){//否
				wheresql+=" and y.isActive=0 ";
			}
			if (status.equals("-1")){//空
				wheresql+=" and y.isActive is null AND y.newStatus in ( '3','5' ) ";
			}
		}

sqlserver

where 1=1 
and ( isnull('${status}','')=''
or
(
case when ISNULL(h.address, '') = 'hangzhou'  and c.isActive=1 then 1
when ISNULL(h.address, '') = 'hangzhou'  and c.isActive=0 then 0
when ISNULL(h.address, '') = 'hangzhou'  and c.isActive is null AND c.newStatus in ( '3','5' ) then -1
end  
)=isnull('${status}','')
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页