sql 语句的问题(200分)

  • 主题发起人 主题发起人 wnr
  • 开始时间 开始时间
W

wnr

Unregistered / Unconfirmed
GUEST, unregistred user!
我的fox数据库中有一个用9位数字组成的字段,能不能用一句sql语句查询出条件中所指定
的200个纪录
如: select * from xxx.dbf where aaa='111111111' or aaa='222222222'....
我以对aaa作了索引,但用上面的语句会说sql过于复杂.


(分数可以再加)
 
是字符穿还是数字呀,怎么还加单引号
 
***.dbf 还用加 dbf吗?

dos 下的前200条,只能用
with query1 do
while not eof do
begin

end;

query1 select * from xxx where aaa=:aaa
close;
parambyname('aaa').asstring:=trim(edit1.text);
open;
 
我并不是想查前200条纪录,而是想对任意200条纪录进行查询 aaa后的字符是由我来任意
给定的
 
乾脆用模糊查詢不更好一些嗎
 
能用我早用了
 
select * from XXX."TABLENAME" WHERE AA='111' OR AA='222'
 
select * from tablename where aa between value1 and values2
or
select * from tablename where aa like '%value%'
 
风中流云
你的语句和我一样,如果有200多个aaa 一定会出错的.
 
select * from tablename where aa in [...]
 
snjat
这个字段中的9位字符是没有规则的所以没法确定是在那些之间.
 
LeeChange
in 我也用过,但一样过于复杂
 
CreateTListBox,把你的条件都写进去.
For i := 1 to 200
begin
xx := ListBox1.Items.Strings;
s:=s+'and aaa=xx';
sql.text:='select xx from xx where (1=1)'''+s+'''';
end;
 
9861
解释一下(1=1)的意思
 
select * from tablename where aa='111'
union
select * from tablename where aa='222'
union
.
.
.
 
LeeChange
这样速度会有影响吗(库中共2百万纪录)
所查的纪录是在通一张表中吗?
 
如果aa是索引应该问题不大,毕竟你只挑200条记录
 
你先将你的这些条件全部放到一个数据库中。如:YYY.DBF 并它们有相同的字段AAA
然后使用
SELECT * FROM XXX.DBF WHERE AAA IN (SELECT AAA FROM YYY.DBF)

我的方法绝对没错,快结束问题吧。顺便把分与给我。:)
 
我只对sqlserver熟,这样的情况,sqlserver中用这样的语句

select * from XXXX where aa in ('111111','22222',.......);
速度还可以
 
后退
顶部