SQL Server存储过程中的动态where条件



这是我的SQL Server存储过程

CREATE PROC test_sp
@id int,
@ipVal varchar(20) = null,
@browserName varchar(20) = null
as
begin
select * from users where id=@id order by id desc;
end

我想动态地改变我的where条件。

@ipVal is not null时,我应该传递Where条件中的三个参数。当我的@ipVal is null,那么我应该只通过id=@id在哪里条件。

如何在SQL Server存储过程中做到这一点?

你可以这样修改where子句:

select * from users 
where id=@id
and (@ipVal is null or (browserName=@browserName and ipval=@ipVal))

最新更新