Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在sql proc中选择使用单个或两个输入参数的查询_Sql_Sql Server_Stored Procedures - Fatal编程技术网

在sql proc中选择使用单个或两个输入参数的查询

在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

假设我有两个文本框,即id和name。如果我传递id,它应该显示来自该表的数据,或者传递名称,它应该显示数据。我只想在一个存储过程中完成它

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

请修改您的问题,使其更加清晰,并包含您已经尝试过的内容。如果您能提供到目前为止的进展情况,那将是非常棒的。我建议不要使用存储过程来进行此类查询。