日期:2014-05-17  浏览次数:20870 次

请教一个查询优化的问题.
本人在写按条件查询结果的表单中,
比如有2个条件'开始日期'和'结束日期',我在用户提交后都是用下面的判断去做区分:
if request(开始日期)="" or request(结束日期)="" then
.
.
sql=select * from tb

rs.open
.
else

sql=select * from tb where 日期 between "开始日期" and "结束日期"

end if.


我想问问,有没有方法实现只有一句sql既可以满足条件不为空时又可以满足条件为空时的查询. 谢谢!

------解决方案--------------------
dim tjfind

if request(开始日期)="" or request(结束日期)="" then
tjfind=""
else
tjfind=" where 日期 between '开始日期' and '结束日期'"
end if

sql="select * from tb"+tjfind
------解决方案--------------------
sql="select * from tb"
if request(开始日期)<>"" and request(结束日期)<>"" then
sql= sql & " where 日期 between '开始日期' and '结束日期'"
end if
...
------解决方案--------------------
select * from tb where 日期 between isnull("开始日期",'1900-1-1') and isnull("结束日期"9999-1-1)

一句sql不是也行么 isnull写法需要处理下,我就是给个思路 不能直接用哦