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
最后
以上就是动听百合最近收集整理的关于用存储过程实现多条件查询的方法的全部内容,更多相关用存储过程实现多条件查询内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复