来自:http://www.cnblogs.com/wenyang-rio/archive/2012/10/31/2745525.HTML
开发中经常会遇得到需要多种条件组合查询的情况, 比如有三个表,年级表Grade(GradeID,Gradename),班级Class(ClassID,Classname,GradeID),学员表Student(StuID,Stuname,ClassID),现要求可以按年级ID、班级ID、学生名,这三个条件可以任意组合查询学员信息。 做法不止一种,这里提供一种巧妙的使用一条查询来实现的办法,我们来写成一个过程,如下:create proc up_select_student_combocondition @gradeID int,@classID 10)as select s.*,c.classname,g.gradename from student s join class c on s.classID=c.classID join grade g on c.gradeID=g.gradeID where (@gradeID=-1 or g.gradeID=@gradeID) and (@classID=-1 or c.classID=@classID) and (@stuname='' or s.stuname=@stuname)go--那么: exec up_select_student_combocondition -1,-1,'' --这是查询所有学员信息 exec up_select_student_combocondition 2,'' --这是查询年级ID为2的学员信息 exec up_select_student_combocondition -1,4,'' --这是查询班级ID为4的学员信息 exec up_select_student_combocondition 2,'' --这是查询年级ID为2且班级ID为4的学员信息 --etc.... 有兴趣的,不妨琢磨一下。 总结
以上是内存溢出为你收集整理的SqlServer 巧妙解决 多条件组合查询(只是一个很好的想法,但它不会走索引)所以效率不好全部内容,希望文章能够帮你解决SqlServer 巧妙解决 多条件组合查询(只是一个很好的想法,但它不会走索引)所以效率不好所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)