根据条件查询数据,若参数为空的时候应该怎么写?
<root>
<table>
<base_info>
Select * From base_info@dbTest A
where A.WRITE_TIME<![CDATA[>]]>=to_date('{startTime}','yyyy-mm-dd hh24:mi:ss')
and A.WRITE_TIME<![CDATA[<]]>to_date('{endTime}','yyyy-mm-dd hh24:mi:ss')+1
</base_info>
</table>
</root>
我现在需要根据条件参数进行查询,endTime可能为空,这样的话,SQL语句应该如何写? 谢谢 sql
[解决办法]
WRITE_TIME >=startTime and (WRITE_TIME < endtime or endtime is null)
[解决办法]
Select * From base_info@dbTest A
where (startTime is null or A.WRITE_TIM>=to_date(startTime,'yyyy-mm-dd hh24:mi:ss'))
and (endTime is null or A.WRITE_TIME>to_date(endTime,'yyyy-mm-dd hh24:mi:ss')+1);
不过还是建议在应用代码里做判断。
[解决办法]
Select * From base_info@dbTest A
where A.WRITE_TIME<![CDATA[>]]>=to_date('{startTime}','yyyy-mm-dd hh24:mi:ss')
and A.WRITE_TIME<![CDATA[<]]>nvl(to_date('{endTime}','yyyy-mm-dd hh24:mi:ss')+1,一个能让这个表里的所有记录满足此条件的极限值比如9999-12-31)