sql 在存储过程中的动态查询--就是当有的查询条件为空时就不加入查询


下面是一个比较巧妙的方法去实现所谓的“动态查询”

ALTER PROCEDURE [dbo].[Test]
@flag int,
@inorout int
AS
BEGIN

SELECT * FROM Demo 
where 1 = 1
and ((@flag IS NULL) or (flag=@flag) or @flag = '')
and ((@id IS NULL) or (id=@id) or @id= '')
END

@flag是传入的参数
 
so...如果要启用id作为查询条件,就传入一个非null的值,否则就是不启用id作为查询条件,这就是传说中的动态查询


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM