我和几个同学在业余时间搞了一个同学录系统主要是用ASP和SQL语言实现各项功能,在查询这一步,有一项功能我们不知道如何用SOL语言编写,希望高手能指导一下。
大体功能是这样:在查询页面有多个查询选项,用户选择部分选项点查询,系统返回符合要求的同学的全部信息。
例如:在出生年月一栏写“1987”,在性别写“男”,家乡写“河北”,其余的选项写空。然后系统就将符合的条件的同学的所有信息返回。问题就在其余这些为空的选项上面,一直得不到理想的返回结果。不知如何处理,我们用过的方法有模糊查询和条件查询,鉴于编程水平有限一直无法如愿.
希望高手给出一个简洁高效的答案
大体功能是这样:在查询页面有多个查询选项,用户选择部分选项点查询,系统返回符合要求的同学的全部信息。
例如:在出生年月一栏写“1987”,在性别写“男”,家乡写“河北”,其余的选项写空。然后系统就将符合的条件的同学的所有信息返回。问题就在其余这些为空的选项上面,一直得不到理想的返回结果。不知如何处理,我们用过的方法有模糊查询和条件查询,鉴于编程水平有限一直无法如愿.
希望高手给出一个简洁高效的答案
declare @date datetime,@sex varchar(2),@native varchar(10)select * from 表 where 出生年月=isnull(@date,出生年月) and 性别=isnull(@sex,性别) and ...
//在页面处理
var list
list=""
if (document.formess.age.value!="")
list=list+" and age='"+document.formess.age.value+"'"
if (document.formess.sex.value!="")
list=list+" and sex='"+document.formess.sex.value+"'"
if (document.formess.country.value!="")
list=list+" and country like '%"+document.formess.sex.value+"%'"//模糊查询
......
list="select * from peoplefile where 1=1"+list//list里面保存的就是你要的语句
</script>
如果都写了,那语句很好写。但是如果我只写了姓名和家乡,而性别和学校项为空,那语句需要特殊处理吗,如果需要的话要分多少情况?不需要的话,又为什么。呵呵,不好意思哈,本人菜的很。
//在页面处理
var list
list=""
if (document.formess.age.value!="")//如果为空下面就不执行. 这样就没有年纪的判断
list=list+" and age='"+document.formess.age.value+"'"
if (document.formess.sex.value!="")
list=list+" and sex='"+document.formess.sex.value+"'"
if (document.formess.country.value!="")
list=list+" and country like '%"+document.formess.sex.value+"%'"//模糊查询
......
list="select * from peoplefile where 1=1"+list//list里面保存的就是你要的语句
</script>