查询的问题(100分)

  • 主题发起人 主题发起人 飓 风
  • 开始时间 开始时间

飓 风

Unregistered / Unconfirmed
GUEST, unregistred user!
我建立了一个动态查询: 从人员表people中根据人员的单位进行筛选
select *
from people
where 单位=:value and...and ... (还有很多项)
然后参数value在程序中进行不同的赋值,问题是现在当程序中的控件选项为“全部”
时,我给value 的值是:"%",即想把所有的人选出来,包括有单位的和没有单位的,但是现在
的问题是,如果这样的话,当单位这个字段没有值,即为空的记录不会被选出来,现在的问题是
我应该给参数value赋什么值,使所有的人(包括单位字段的空)的人也可以选出来??
请多多指教!
 
笨笨的方法是
if value='' then
......
else
......
 
自己拼写SQL语句吧,不要使用参数了。
查询为空的记录一般是
column1 is null之类的。
 
除了楼上的说的,好象没什么好办法了
 
呆子
select *
from people
就行了,不要条件就是全部选上,你想歪了
 
查询语句中不要带“单位=XXX”的条件就可以了
很高深吧
 
if 控件值=‘全部’
sql.add('select * from peple')
else sql.add('select * from peple where 单位=:value and...and ... ');
 
to :cx139 ric. eric.youbin
但是我在程序中还需要动态查询啊,需要其它的参数值啊,
例如单位可以赋值为客运段等等,而且where后面还不止这一项,有很多动态查询参数啊,
例如还有性别:=value2等等啊,其实我想实现的是综合的筛选条件

 
既然是动态查询,那这个参数是不固定的,应该是:单位=:value and...and ...单位:=''
 
s:='select * from people where 1=1 '
if then s:=s+' and '
 
你把
select * from people where 单位=:value and...and ...
改成
select * from people where 单位 like :value and...and ...
就行,不过如果数据大时,速度会有点慢。
估计还不如直接写sql
 
to :book523
多谢,可是我试了一下,用 like "%"还是不能查出字段为空的记录啊
 
多人接受答案了。
 
后退
顶部