创建存储过程create procedure proc_getAllemployeeInfo
@userName varchar(50),
@userID varchar(50),
@userDepartment varchar(50)
as
此处求一条SQL语句
select * from [User]  (如果传入的3个参数都为null)如果有不为null的参数 则在后面加上 where userName = @userName。。该如何写这样一条SQL语句 

解决方案 »

  1.   

    create procedure proc_getAllemployeeInfo 
    @userName varchar(50), 
    @userID varchar(50), 
    @userDepartment varchar(50) 
    as 
    select *
    from [User]
    where username=ISNULL(@username,username) 
      and userid=ISNULL(@userid,userid)
      and userDepartment=ISNULL(@userDepartment,userDepartment)
    gotry
      

  2.   

    create procedure proc_getAllemployeeInfo 
    @userName varchar(50), 
    @userID varchar(50), 
    @userDepartment varchar(50) 
    as 
    declare @sql varchar(1000)
    declare @sqlwhere varchar(1000)
    set @sqlwhere = 'where 1=1 '
    if @username is not null
      set @sqlwhere = @sqlwhere + 'and username=''' +@username +''''
    if @userID is not null
      set @sqlwhere = @sqlwhere + 'and username=''' +@userID + ''''
    if @userDepartment  is not null
      set @sqlwhere = @sqlwhere + 'and userDepartment =''' +@userDepartment  + ''''set @sql = 'select * from [user] ' + @sqlwhere
      

  3.   


    Select * from [User] where username=ISNULL(@username,username)  and userid=ISNULL(@userid,userid) and userDepartment=ISNULL(@userDepartment,userDepartment)
      

  4.   


    select * from [User] where userName = isnull(@userName,username) 
      

  5.   


    create procedure proc_getAllemployeeInfo 
    @userName varchar(50), 
    @userID varchar(50), 
    @userDepartment varchar(50) 
    as 
    select *
    from [User]
    where username=ISNULL(@username,username) 
      and userid=ISNULL(@userid,userid)
      and userDepartment=ISNULL(@userDepartment,userDepartment)
      

  6.   

    create procedure proc_getAllemployeeInfo 
    @userName varchar(50), 
    @userID varchar(50), 
    @userDepartment varchar(50) 
    as 
    begin
    select * from [User]
    where 1=1
    and (userName=@userName or @userName is null)
    and (userID=@userID or @userID is null)
    and (userDepartment=@userDepartment or @userDepartment is null)
    end
      

  7.   

    create procedure proc_getAllemployeeInfo 
    @userName varchar(50), 
    @userID varchar(50), 
    @userDepartment varchar(50) 
    as 
    begin
        select * from [User]
        where (userName=@userName or @userName is null)
            and (userID=@userID or @userID is null)
            and (userDepartment=@userDepartment or @userDepartment is null)
    end
      

  8.   


    select * from [User] where (userName = @userName or @userName is Null)