SqlServer 巧妙解决 多条件组合查询(只是一个很好的想法,但它不会走索引)所以效率不好

SqlServer 巧妙解决 多条件组合查询(只是一个很好的想法,但它不会走索引)所以效率不好,第1张

概述来自:http://www.cnblogs.com/wenyang-rio/archive/2012/10/31/2745525.html  开发中经常会遇得到需要多种条件组合查询的情况, 比如有三个表,年级表Grade(GradeId,GradeName),班级Class(ClassId,ClassName,GradeId),学员表Student(StuId,StuName,ClassId),现

来自: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 巧妙解决 多条件组合查询(只是一个很好的想法,但它不会走索引)所以效率不好所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1175689.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存