首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

根据条件查询数据,若参数为空的时候应该如何写

2013-03-27 
根据条件查询数据,若参数为空的时候应该怎么写?roottablebase_infoSelect * From base_info@dbTest

根据条件查询数据,若参数为空的时候应该怎么写?
<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);

不过还是建议在应用代码里做判断。
[解决办法]

引用:
我把问题再描述的清楚一点。。。

现在sql语句是这样:
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……



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) 

热点排行