SQLServer_where添加类似ifelse条件(casewhen)

版权声明:_____________________不积跬步,无以至千里;不积小流,无以成江海。(转载若侵权,联系删除) https://blog.csdn.net/icecoola_/article/details/86302565

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}','')

猜你喜欢

转载自blog.csdn.net/icecoola_/article/details/86302565