概述
1. 拼接SQL代码,然后通过EXEC (@SQLString)得到结果。可读性不好,而且如果碰到SQL太长可能会溢出。
2. 今天想到个更好的取巧方法:设置参数的缺省值,然后将判断参数与缺省值是否相等 和 与此参数相关的查询条件 用OR连接 组成一个查询条件:
SET @startDate = ' 2007-01-01 00:00:00 '
SET @officeId = NULL
SET @invoicedStatus = 0
WHERE
ejh.EnquiryDeleted = 0
AND ( @startDate IS NULL OR ejh.DateTimeTaken >= @startDate )
AND ( @officeId IS NULL OR cp.OfficeId = @officeId )
AND ( @invoicedStatus = 0 OR CASE WHEN t.InvoiceNo IS NOT NULL THEN 1 ELSE 2 END = @invoicedStatus )
2. 今天想到个更好的取巧方法:设置参数的缺省值,然后将判断参数与缺省值是否相等 和 与此参数相关的查询条件 用OR连接 组成一个查询条件:
SET @startDate = ' 2007-01-01 00:00:00 '
SET @officeId = NULL
SET @invoicedStatus = 0
WHERE
ejh.EnquiryDeleted = 0
AND ( @startDate IS NULL OR ejh.DateTimeTaken >= @startDate )
AND ( @officeId IS NULL OR cp.OfficeId = @officeId )
AND ( @invoicedStatus = 0 OR CASE WHEN t.InvoiceNo IS NOT NULL THEN 1 ELSE 2 END = @invoicedStatus )
转载于:https://www.cnblogs.com/viewercq/archive/2008/05/03/1180022.html
最后
以上就是动听百合为你收集整理的用存储过程实现多条件查询的方法的全部内容,希望文章能够帮你解决用存储过程实现多条件查询的方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复