CREATE  PROCEDURE AdSearchContent
@KeyWord varchar(50) ='%',   --==关键字
@Author varchar (50) ='%',   --==作者
@CateID varchar (50) ='%',   --==范围
@InputDate varchar(50)   --==时间
AS
SELECT  nID,Title,Content,Author,InputDate
FROM sfNews
WHERE (KeyWord LIKE @KeyWord)
              AND(Author LIKE @Author)
      AND(CateID LIKE @CateID)
      AND(InputDate > @InputDate)
return
GO
原来的存储过程是如上现在想把他改为当@input为空的时候就不对比(InputDate > @InputDate)
了这里的InputDate字段为SMALLDATETIME,参数@Author,@CateID ,@KeyWord 也用一样的方法大家帮我一下,可以只写一点看看我能不能举一反三

解决方案 »

  1.   

    if @input=null
    SELECT  nID,Title,Content,Author,InputDate
    FROM sfNews
    WHERE (KeyWord LIKE @KeyWord)
                  AND(Author LIKE @Author)
          AND(CateID LIKE @CateID)
    else
    SELECT  nID,Title,Content,Author,InputDate
    FROM sfNews
    WHERE (KeyWord LIKE @KeyWord)
                  AND(Author LIKE @Author)
          AND(CateID LIKE @CateID)
          AND(InputDate > @InputDate)
      

  2.   

    CREATE  PROCEDURE AdSearchContent
    @KeyWord varchar(50) ='%',   --==关键字
    @Author varchar (50) ='%',   --==作者
    @CateID varchar (50) ='%',   --==范围
    @InputDate varchar(50)   --==时间
    AS
    SELECT  nID,Title,Content,Author,InputDate
    FROM sfNews
    WHERE (KeyWord LIKE isnull(@KeyWord,'%'))
                  AND(Author LIKE isnull(@Author,'%'))
          AND(CateID LIKE isnull(@CateID,'%'))
          AND(InputDate > isnull(@InputDate,0))
    isnull(string ,expreess)
    但string 为空时,用express替代.return
    GO
    -
      

  3.   

    模糊查询,条件为空时,like '%'  .即所有记录
      

  4.   

    ankor(~~~~~对美女应该博爱点!!!) (觉得你写的是很符合我的思路的但是在运行的时出了一些错误,InputDate是smalldatetime类型的SET QUOTED_IDENTIFIER OFF 
    GO
    SET ANSI_NULLS ON 
    GOALTER   PROCEDURE AdSearchContent
    @KeyWord varchar(50),   --==关键字
    @Author varchar (50),   --==作者
    @CateID varchar (50) ,   --==范围
    @InputDate varchar(50)   --==时间
    AS
    SELECT  nID,Title,Content,Author,InputDate
    FROM sfNews
    WHERE (KeyWord LIKE isnull(@KeyWord,'%'))
                  AND(Author LIKE isnull(@Author,'%'))
          AND(CateID LIKE isnull(@CateID,'%'))
          AND(InputDate > isnull(@InputDate,0))returnGO
    SET QUOTED_IDENTIFIER OFF 
    GO
    SET ANSI_NULLS ON 
    GOEXECUTE AdSearchContent错误:====================服务器: 消息 201,级别 16,状态 4,过程 AdSearchContent,行 0
    过程 'AdSearchContent' 需要参数 '@KeyWord',但未提供该参数。
      

  5.   

    EXECUTE AdSearchContent '','','',''