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

时间:2019-02-07 09:10:51

标签: sql sql-server stored-procedures

假设我有2个文本框,即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

3 个答案:

答案 0 :(得分:2)

您可以使用

 select * from employeeTable
 where employeelName=@employeelName OR employeefName=@employeefName 

答案 1 :(得分:0)

这将允许您传递名称或ID,并返回相应的名称/ ID。

LD_LIBRARY_PATH

答案 2 :(得分:0)

根据您的要求,我了解以下内容

您的proc具有2个参数 如果将值同时传递给两个参数,则您希望结果基于两个参数,否则仅基于已传递的参数。

在这种情况下,您可以尝试以下逻辑

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