sql多条件查询语句
表中字段有:姓名,年龄,身高,体重;将这些字段设置为查询条件,可进行单条件查询,也可多条件查询,如果所有查询条件为“全部”时,则显示所有资料,我原用IfCombo1.Te...
表中字段有:姓名,年龄,身高,体重;将这些字段设置为查询条件,可进行单条件查询,也可多条件查询,如果所有查询条件为“全部”时,则显示所有资料,我原用
If Combo1.Text = "全部" And Combo2.Text <> "全部" And Combo3.Text <> "全部" And Combo4.Text <> "全部" Then
SQL = "select * from 档案 where 编号<>' ' And 年龄='" & Combo2.Text & "' And 身高='" & Combo3.Text & 体重 =‘' & combo4.text & ''"
ElseIf Combo2.Text = "全部" And Combo1.Text <> "全部" And Combo3.Text <> "全部" And Combo4.Text <> "全部" Then
SQL = "select * from 档案 where 编号<>' ' And 姓名='" & Combo1.Text & "' And 身高='" & Combo3.Text & 体重 =‘' & combo4.text & ''"
。。。。。
这样的if判断语句查询,但需要判断的层数太多,有没有其他的方法来简化这段代码,或者有其他的写法吗? 展开
If Combo1.Text = "全部" And Combo2.Text <> "全部" And Combo3.Text <> "全部" And Combo4.Text <> "全部" Then
SQL = "select * from 档案 where 编号<>' ' And 年龄='" & Combo2.Text & "' And 身高='" & Combo3.Text & 体重 =‘' & combo4.text & ''"
ElseIf Combo2.Text = "全部" And Combo1.Text <> "全部" And Combo3.Text <> "全部" And Combo4.Text <> "全部" Then
SQL = "select * from 档案 where 编号<>' ' And 姓名='" & Combo1.Text & "' And 身高='" & Combo3.Text & 体重 =‘' & combo4.text & ''"
。。。。。
这样的if判断语句查询,但需要判断的层数太多,有没有其他的方法来简化这段代码,或者有其他的写法吗? 展开
4个回答
展开全部
你这语句写的自己都哭了吧,一般sql拼接是这么做的,我给你写个伪代码
设初始sql= "select * from 档案 where 1=1"
设combo1,2,3,4分别为4个查询条件
if Combo1.Text<>全部
then sql=sql&"and 姓名=‘"&姓名变量&“’”
......
if Combo4.Text<>全部
then sql=sql&"and 体重=‘"&体重变量&“’”,1=1在百万数量级以上会有效率问题,但小型应用可不考虑。
设初始sql= "select * from 档案 where 1=1"
设combo1,2,3,4分别为4个查询条件
if Combo1.Text<>全部
then sql=sql&"and 姓名=‘"&姓名变量&“’”
......
if Combo4.Text<>全部
then sql=sql&"and 体重=‘"&体重变量&“’”,1=1在百万数量级以上会有效率问题,但小型应用可不考虑。
追问
确实写哭我了,幸亏得到您的帮助,非常感谢!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SQL = "select * from 档案 where 1 = 1 "
If Combo1.Text <> "全部" Then
SQL = SQL & " and " & "姓名='" & Combo1.Text & "'"
End if
If Combo2.Text <> "全部" Then
SQL = SQL & " and " & "年龄='" & Combo2.Text & "'"
End if
If Combo3.Text <> "全部" Then
SQL = SQL & " and " & "身高='" & Combo3.Text & "'"
End if
If Combo4.Text <> "全部" Then
SQL = SQL & " and " & "体重='" & Combo4.Text & "'"
End if
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-09-10
展开全部
Combo1.Text :=Combo1.Text='全部'?'':Combo1.Text;
Combo2.Text :=Combo2.Text='全部'?'':Combo2.Text;
Combo3.Text :=Combo3.Text='全部'?'':Combo3.Text;
Combo4.Text :=Combo4.Text='全部'?'':Combo4.Text;
select * from 档案 where 姓名 like '%Combo1.Text%' and 年龄 like '%Combo2.Text%' and 身高 like '%Combo3.Text%' and 体重 like '%Combo4.Text%';
Combo2.Text :=Combo2.Text='全部'?'':Combo2.Text;
Combo3.Text :=Combo3.Text='全部'?'':Combo3.Text;
Combo4.Text :=Combo4.Text='全部'?'':Combo4.Text;
select * from 档案 where 姓名 like '%Combo1.Text%' and 年龄 like '%Combo2.Text%' and 身高 like '%Combo3.Text%' and 体重 like '%Combo4.Text%';
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from a where b in(‘1’ , ‘2’, ‘3’) and c <> '4'
这样可以么?
这样可以么?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询