tempad
ReadyGo!技术成就梦想 >>交换技术 >> 一个简单的条件查询问题

一个简单的条件查询问题

ReadyGo!技术成就梦想 网络搜索 efish 2008-1-20 5:02:56

一个简单的条件查询问题

楼主zdtsw(一休哥的小叶子)2006-07-12 09:48:24 在 其他数据库开发 / Access 提问

table   t1有列a   和b,如下:  
  a           b  
  1           2  
  1           3  
  1           4  
  2           2  
  2           8  
  现在要查询a值为1的行  
  请问select   *   from   t1   where   a="1"和select   *   from   t1   where   a="1"and   b=all一样吗?  
  因为查询条件不确定,可能有确切的a,b值,也可能只有a值没给b   值。有何方法可以解决? 问题点数:20、回复次数:7Top

1 楼wwwwb()回复于 2006-07-12 11:12:45 得分 5

1、b=all是什么意思?  
  2、两个条件与一个条件查询出来的记录一般来讲有差别。Top

2 楼zdtsw(一休哥的小叶子)回复于 2006-07-12 16:39:26 得分 0

all只是用来表示所有,就像select   *   =select   all   那样。  
  查询条件不确定,可能有确切的a,b值,也可能只有a值没给b   值。a,b的值是由用户输入的,就是要实现模糊查询的功能。  
  咋写语句呢?  
   
  Top

3 楼zdtsw(一休哥的小叶子)回复于 2006-07-12 16:53:28 得分 0

如果用一个列c(字符型)来表示a     和b列,  
  string   sa="%";  
  string   sb="%";  
  string   sql   ="select   *   from   t1   where   c   like"+sa+sb;  
  可以吗?Top

4 楼changechange(http://access911.net 是我的个人网站,欢迎光临)回复于 2006-07-13 13:23:45 得分 5

请问select   *   from   t1   where   a="1"和select   *   from   t1   where   a="1"and   b=all一样吗?  
   
  ---------你的问题必须用组织   SQL   语句的方法来解决,否则只能用字符串的   LIKE   方法来解决  
   
  if   isnull(窗体上输入控件B.VALUE)=true   then  
          "不写   B   条件  
          strsql="select   *   from   t1   where   a="1""  
  else  
          strsql="select   *   from   t1   where   a="1"   and   b=""   &   窗体上输入控件B.VALUE   &   """  
  end   ifTop

5 楼zdtsw(一休哥的小叶子)回复于 2006-07-13 18:03:06 得分 0

简化了问题,给楼上的造成错误概念,  
  其实   一共有3个b这样的空件,有个a   这样的控件。所以要用if   else   就不太方便  
  现在写了这样几句代码:  
    string   s1=“dd”;  
    string   s2=TextBox2.Text;  
    string   s3="ee";  
    string   s4="kq";  
    string   s5=TextBox5.Text;  
    string   s6=TextBox6.Text;  
   
  if(s2=="")  
  s2="%";  
  if(s5=="")  
  s5="%";  
  if(s6=="")  
  s6="%";  
   
  string   sql="select   *   from   t1   where   t2   like"+s1+s2+s3+s4+s5   +"   and   t3   like"%"+s6+"%"   or   t5   like   "%"+s6+"%"   or   t4   like   "%"+s6+"%"   or     like   "%"+s6+"%"";  
   
  再请各位看看,这样行吗?  
   
  Top

6 楼wangtiecheng(不知不为过,不学就是错!)回复于 2006-07-15 14:02:06 得分 10

用if   else   固然可以,但是也可以直接用一个SQL完成。  
  如下:  
   
  SELECT   *  
  FROM   t1  
  WHERE   iif(isnull(),1=1,a=)   and     iif(isnull(),1=1,b=);  
   
   
  --或  
   
  SELECT   *  
  FROM   t1  
  WHERE   IIf(isnull(窗体名!txtA),1=1,a=窗体名!txtA)   And   IIf(isnull(窗体名!txtA),1=1,b=窗体名!txtA);  
  Top

7 楼zdtsw(一休哥的小叶子)回复于 2006-07-17 09:17:17 得分 0

iif不用于C#,    
  要不改成为string   s2=TextBox2.Text?“%”,TextBox2.Text;可不可以?  
  最后   再用string   sql="select   *   from   t1   where   t2   like"+s1+s2+s3+s4+s5   +"   and   t3   like"%"+s6+"%"   or   t5   like   "%"+s6+"%"   or   t4   like   "%"+s6+"%"   or     like   "%"+s6+"%"";  
   
  Top

责任编辑: efish 参与评论 查找更多:
相关文章
本人遇到了一个非常非常奇怪的问题!关于删除数据! 本人遇到了一个非常非常奇怪的问题!关于删除数据!
对话框控件的helpId属性是干什么用的 对话框控件的helpId属性是干什么用的
如何添加cursor? 如何添加cursor?
在jsp页面中插入.jpg和.gif的图片有什么区别? 在jsp页面中插入.jpg和.gif的图片有什么区别?
字符串的问题,请各位帮忙 字符串的问题,请各位帮忙
有做手机图钤下载的请进 有做手机图钤下载的请进
求跨站点传值的解决方法 求跨站点传值的解决方法
信号与线程的问题 信号与线程的问题
eclipse SDK3.2 启动时出错 eclipse SDK3.2 启动时出错
北京博彦公司怎么样? 北京博彦公司怎么样?
2秒记住本站域名

玩过泡泡龙吗?Readygo?Go! 再加上.Com.Cn的后缀,那就是大名小顶的ReadyGo.com.cn

分类导航
ReadyGo!技术成就梦想