本人是新手,想做一个单表的复合查询后台。现在情况是加and条件后可以轻松实现复合查询,但问题是这样就不能单独查询了。
比如: select * from mytable 建年=‘1955-10-10’and 录入期='2010-10-10' 但这样的话,在客户端单选建年或者录入期就会返回一个空数据,只能有同满足两个条件才返回数据。请高手指点一下。实现复合查询后怎么才能单独查询也有用。谢谢。
比如: select * from mytable 建年=‘1955-10-10’and 录入期='2010-10-10' 但这样的话,在客户端单选建年或者录入期就会返回一个空数据,只能有同满足两个条件才返回数据。请高手指点一下。实现复合查询后怎么才能单独查询也有用。谢谢。
建年='1955-10-10' and 录入期 is null
or (录入期 is null and 录入期='2010-10-10' )or(录入期='1955-10-10' and 录入期='2010-10-10' )
(建年='1955-10-10' and 录入期 is null)
or (录入期 is null and 录入期='2010-10-10' )or(录入期='1955-10-10' and 录入期='2010-10-10' )
case when 建年=‘1955-10-10’ and 录入期 is null then ...else ''end ,
case when 录入期 is null and 录入期='2010-10-10' then ... else '' end,
case when 录入期='1955-10-10' and 录入期='2010-10-10' then ... else '' end
from
tb
if else
strSQL='select * from mytable Where 1=1'If{客户端单选建年<>Null}
strSQL=strSQL & ' And 建年=''1955-10-10'''If{输入录入期<>Null}
strSQL=strSQL & ' And 录入期=''1955-10-10'''执行strSQL语句
select * from mytable where
(建年='1955-10-10' and 录入期='2010-10-10') or
(建年 is null and 录入期='2010-10-10') or
(建年='1955-10-10' and 录入期 is null)
我看这个方法很简单,但试了下没有用,我客户端的控件是 建年:<select id="Select1" name="建年">
<option value="">-请选择-</option>
<option value="1970-10-10">-1970-10-10</option>是不是value=""不等于null所以还是不能单选。复选可以。还请继续帮忙。
如:<option value="">-请选择-</option>是不是出在""不等null造成的。