Drop Proc SearchparamClassNoIsNotNull
GO
Create Proc SearchparamClassNoIsNotNull
(
    @paramJudge nchar(4), --参数为ALL,符号'<',符号'=',符号'>'
    @paramDate time       --参数为开课时间
)
AsBegin
SELECT * FROM T1 WHERE T1.开课时间 @paramJudge @paramDate
End
想达到下面的效果,请教上面句子该如何修改?If (@paramJudge='ALL')
Begin
    Select * From T1
End
IF (@paramJudge='<')
Begin
    Select * From T1 Where T1.开课时间 < @paramDate
End
IF (@paramJudge='=')
Begin
    Select * From T1 Where T1.开课时间 = @paramDate
End
IF (@paramJudge='>')
Begin
    Select * From T1 Where T1.开课时间 > @paramDate
End

解决方案 »

  1.   

    Drop Proc SearchparamClassNoIsNotNull
    GO
    Create Proc SearchparamClassNoIsNotNull
    (
        @paramJudge nchar(4), --参数为ALL,符号'<',符号'=',符号'>'
        @paramDate time       --参数为开课时间
    )
    AsBegin    declare @strset @str='SELECT * FROM T1 WHERE T1.开课时间 '+@paramJudge +'convert(varchar(10),@paramDate,120)'
        exec(@str)
    End
      

  2.   

    Create Proc SearchparamClassNoIsNotNull
    (
        @paramJudge nchar(4), --参数为ALL,符号'<',符号'=',符号'>'
        @paramDate time       --参数为开课时间
    )
    AsBegin
        declare @s varchar(1000)
        set @s = case when paramJudge = 'ALL' then 'SELECT * FROM T1 '
                      else 'SELECT * FROM T1 WHERE T1.开课时间 '+@paramJudge+ @paramDate end
        exec(@s)
    Endgo
      

  3.   

    Drop Proc SearchparamClassNoIsNotNull 
    GO 
    Create Proc SearchparamClassNoIsNotNull 

        @paramJudge nchar(4), --参数为ALL,符号' <',符号'=',符号'>' 
        @paramDate time      --参数为开课时间 

    As Begin     declare @str varchar(200)
    IF @paramJudge='ALL'
    set @str=''SELECT * FROM T1'
    else 
    set @str='SELECT * FROM T1 WHERE T1.开课时间 '+@paramJudge +'convert(varchar(10),@paramDate,120)'     exec(@str) 
    End 
      

  4.   

    最多来个判断 在执行就可以了 其实如果是对应的符号的话直接执行就可以啊 
    where 日期 符号 日期参数
      

  5.   

    DECLARE @S NVARCHAR(50)
    SET @S = 'SELECT * FROM T1 WHERE T1.开课时间 ' + @paramJudge +  @paramDate
    EXEC(@S)
      

  6.   


    Drop Proc SearchparamClassNoIsNotNull 
    GO 
    Create Proc SearchparamClassNoIsNotNull 

        @paramJudge nchar(4), --参数为ALL,符号' <',符号'=',符号'>' 
        @paramDate time      --参数为开课时间 

    As Begin declare @str varchar(200) 
    IF UPPER(@paramJudge)='ALL' 
    set @str=''SELECT * FROM T1' 
    else 
    set @str='SELECT * FROM T1 WHERE T1.开课时间 '+@paramJudge +@paramDate 
        exec(@str) 
    End