S
sherlockye
Unregistered / Unconfirmed
GUEST, unregistred user!
我需要做一个sql查询,查询条件由用户来自行定义,如下:select * from X where 条件A and 条件B and 条件C and 条件D.....显然,各个条件都是string变量,于是写成这样:strSQL:='select * from X where'+ 条件A + 'and'+ 条件B + 'and'+ 条件V + 'and'+ 条件D;但问题在于每个条件是否存在这一点我事先不知道,甚至有可能一个条件都没有,用户要求显示所有数据,那么这些条件该怎么样写呢?比如,正常来说,条件A:='客户编号>100'。但是,如果用户选择不要条件A,那么就变成条件A:='',这样sql里面就变成了 select * from X where and ..这样显然语法上就错了,该怎样避免呢?需要特殊说明的是,表里面并不是每个字段都填写全了的,如果我把用户没有选择的字段写成 条件A:='客户编号<>Null',会导致留空的查询不出来。我现在是写了很多个if来判断,但是随着条件个数的增加,总不能一直if下去呀,我有20个字段,这样if会死人的....