一个简单的条件查询问题
一个简单的条件查询问题
楼主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
-
相关文章
2秒记住本站域名
玩过泡泡龙吗?Readygo?Go! 再加上.Com.Cn的后缀,那就是大名小顶的ReadyGo.com.cn
