sql的where里动态拼接条件
以前用过iBatis,她的动态拼接sql功能在多条件查询时使用很方便;
如果必须在一个sql的where里动态拼接一个条件,怎么做呢?
先看看pl/sql伪代码(不用具体考虑其应用场景):
if 状态='1' then --状态为'1'时,where里要加入:结束时间>离开时间 结束时间>离开时间 else --否则,where里要加入:结束时间<当前时间结束时间<当前时间end if;
SELECT * FROM TEST_TABLE TTWHERE ( TT.END_TIME>(CASE WHEN TT.STATUS='1' THEN TT.LEAVE_TIME ELSE NULL END) ORTT.END_TIME<(CASE WHEN TT.STATUS='1' THEN NULL ELSE SYSDATE END) )