create proc p1 @tj varchar(255)
as
select * from [test1] where @tj我有很多条语句select部分相同但是条件不同的所以我想传如条件来查询应该怎么做?

解决方案 »

  1.   

    在后面接着写 select 语句即可
    取数据的时候用 tables[0],tables[1]...来取
      

  2.   

    declare @sqlstr nvarchar(1000)
    set @sqlstr ='select * from [test1] where'+ @tj
    exec @sqlstr
      

  3.   

    create proc p1 @tj varchar(255)
    as
     if @flag ='条件1'
     begin 
     select * from [test1] where @tj 
     end
     if @flag = '条件2'
     begin 
     select *from [test1] where @tj
     end
      
      

  4.   

    Create Proc Proc_SystemUser_Filter
    (
       @SQLEx varchar(1000),
       @FilterState smallint
    )
    AS
    BEGIN
      DECLARE @strSQL VARCHAR(2000)
      IF(@FilterState=1)
      BEGIN
        SET @strSQL='SELECT * FROM SYSTEMUSER WHERE(1>0)';
      END
      IF(@FilterState=2)
      BEGIN
       SET @strSQL='SELECT * FROM VIEW_MODULEUSER_ALL WHERE(1>0)';
      END
      
      IF(@SQLEx IS NOT NULL AND RTRIM(LTRIM(@SQLEx))<>'' AND @SQLEx<>N'')
      BEGIN
        SET @strSQL=@strSQL+@SQLEx;
      END
      exec(@strSQL);
    END