怎样写这样一个SQL语句?(100分)

  • 主题发起人 主题发起人 山雨
  • 开始时间 开始时间

山雨

Unregistered / Unconfirmed
GUEST, unregistred user!
我要在ADOQUERY中查询一个ID字段为一个数组中有的记录,如:数组值为1,2,3,数组名
定为IDquery,我要写select * from 表名 whwre id in ???IDquery???,各位有请了。
 
那有这样做法的?
你试一下看。
adoquery.sql.clear;
adoquery.sql.add('select * from 表名 whwre id in :query');
adoquery.params[0].value := idquery;
adoquery.execsql;
 
i:integer;
instr:string;
instr:='';
for i:=low(idquery) to high(idquery) do
begin
instr:=instr+inttostr(idquery);
if i<>high(idquery) then
instr:=instr+','
end;
sqlstr:='select * from atable where id in ('+instr+')'

大概是这样,
low,high是取最大与最小界值,
好象是这两个函数,好久没用了
 
(idquery)

//idquery :tstrings;
 
更正:
var idquery :array [0..n] of integer;
idstring : string;
i : integer;
begin
...
idstring := '';
for i := 0 to n do
if i <> n then idstring := idstring + inttostr(idquery) + ','
else idstring := idstring + inttostr(idquery);
idstring := '(' + idstring + ')';
with query do
begin
close;
sql.clear;
...
sql.add('where id in ' + idstring);
...
end;
...
end;
 
dlnew较易通过,maming的思路正确,dh12001的需改动,好了谢谢各位的解答,分不多
希望你们满意。
 
后退
顶部