在sql proc中选择使用单个或两个输入参数的查询
假设我有两个文本框,即id和name。如果我传递id,它应该显示来自该表的数据,或者传递名称,它应该显示数据。我只想在一个存储过程中完成它在sql proc中选择使用单个或两个输入参数的查询,sql,sql-server,stored-procedures,Sql,Sql Server,Stored Procedures,假设我有两个文本框,即id和name。如果我传递id,它应该显示来自该表的数据,或者传递名称,它应该显示数据。我只想在一个存储过程中完成它 Alter proc allview( @employeefName varchar(30), @employeelName varchar(30) ) as begin if(@employeelName=null) begin select * from employeeTable where employeefName=@employeefName
Alter proc allview(
@employeefName varchar(30),
@employeelName varchar(30)
)
as
begin
if(@employeelName=null)
begin
select * from employeeTable
where employeefName=@employeefName
end
if(@employeefName=null)
begin
Select * from employeeTable
where employeelName=@employeelName
end
end
你可以用这个
select * from employeeTable
where employeelName=@employeelName OR employeefName=@employeefName
根据你的要求,我理解如下 您的proc有两个参数 如果该值同时传递给两个参数,则希望结果基于这两个参数,否则仅基于已传递的参数 在这种情况下,您可以尝试以下逻辑
Alter PROCEDURE allview
(
@employeefName varchar(30),
@employeelName varchar(30)
)
as
begin
select
*
from employeeTable
where
(
(
ISNULL(@employeefName,'')=''
OR
employeefName=@employeefName
)
OR
(
ISNULL(@employeelName,'')=''
OR
employeelName=@employeelName
)
)
end
请修改您的问题,使其更加清晰,并包含您已经尝试过的内容。如果您能提供到目前为止的进展情况,那将是非常棒的。我建议不要使用存储过程来进行此类查询。