SQL 服务器存储过程中的动态 where 条件
Dynamic where condition in SQL Server stored procedure
这是我的 SQL 服务器存储过程
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
时,那么我应该在where条件中只传递id=@id
。
如何在 SQL 服务器存储过程中执行此操作?
您可以将 where 子句更改为:
select * from users
where id=@id
and (@ipVal is null or (browserName=@browserName and ipval=@ipVal))
这是我的 SQL 服务器存储过程
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
时,那么我应该在where条件中只传递id=@id
。
如何在 SQL 服务器存储过程中执行此操作?
您可以将 where 子句更改为:
select * from users
where id=@id
and (@ipVal is null or (browserName=@browserName and ipval=@ipVal))