表中的字段为
id  title  classid1  classid2 price address name content time
现在根据title classid1 classid2去查询  怎样查啊  还有先判断这三个是否为空
那中方法比较简单效率高 怎样去判断
比如title为空,就只按照classid1,classid2查询  classid1为空,就按照title和classid2查询……
急救  先谢谢了

解决方案 »

  1.   

    select * from TableName where (classid1=@classid1  or @classid1  is null)
    And  (classid2=@classid2 or @classid2 is null)
    And (title  =@title  or @title  is null)???
      

  2.   

    select id,title,classid1,classid2,price,address,name,content time  
      from TableName 
     where (classid1=@classid1  or @classid1  is null)
       And  (classid2=@classid2 or @classid2 is null)
       And (title  =@title  or @title  is null)
      

  3.   

    SELECT * FROM TB WHERE 
    classid1=ISNULL(@classid1,classid1) AND 
    classid2=ISNULL(@classid2,classid2) AND
    classid3=ISNULL(@classid3,classid3) ???????
    是这个意思?
      

  4.   


    //判断的条件,也可以在程序里写好,比如
    string sql = "select * from TableName where 1=1 ";
    if (title <> '')
    {
       sql += " and title = '" + title + "'";
    }
    //...
    //最后,执行sql就可以了.如果都为空,就返回全部记录.
      

  5.   

    应该是这样//判断的条件,也可以在程序里写好,比如
    string sql = "select * from TableName where 1=1 ";
    if (title != '')
    {
       sql += " and title = '" + title + "'";
    }
    //...
    //最后,执行sql就可以了.如果都为空,就返回全部记录.
      

  6.   

    我传过来的classid默认都是0
    如果是0  就查询全部  
    如果不是0  而是其他具体的值  就按照值进行查询
      

  7.   

    select * from TableName where isnull(title,'')+isnull(classid1,'')+isnull(classid2,'')=?
      

  8.   

    晕,那你NULL判断???????
    WHERE 
    classid1=CASE WHEN @classid1=0 THEN classid1 ELSE @classid1 END
    AND 
    .......