下面是一个比较巧妙的方法去实现所谓的“动态查询”
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作为查询条件,这就是传说中的动态查询