我是要从一个表中随意抽出2个以上的数据啊,但一次只能抽出一个, 条件就是SELECT * FROM ABC WHERE ID LIKE '''+EDIT1.TEXT+'''正确答案: 1:SELECT * FROM ABC WHERE ID LIKE '''+EDIT1.TEXT+''' 写的是不对的。 应为sql:= 'SELECT * FROM ABC WHERE ID LIKE '+#39+'%'+Trim(EDIT1.TEXT)+'%'+#39; 2:sql:= 'select top'+ Trim(EDIT1.TEXT) +'a.YourFieldName from ABC a '+ ' where ID LIKE '+#39+'%'+Trim(EDIT1.TEXT)+'%'+#39+ ' order by newid()'; 注:Trim(EDIT1.TEXT) 限制只能填入数字,在此不详述。
不好意思,上面的多写了一行。 2:sql:= 'select top'+ Trim(EDIT1.TEXT) +'a.YourFieldName from ABC a '+ ' where ID LIKE '+#39+'%'+Trim(EDIT1.TEXT)+'%'+#39+ ' order by newid()'; 改为: 2:sql:= 'select top'+ Trim(EDIT1.TEXT) +'a.YourFieldName from ABC a '+ ' order by newid()';
大哥,我的'ID'是动态的,不是固定的
按你的意思好像不行吧?
我是要从一个表中随意抽出2个以上的数据啊,但一次只能抽出一个,
条件就是SELECT * FROM ABC WHERE ID LIKE '''+EDIT1.TEXT+'''
?
create table #t1 (id2 int)
insert into #t select 1 union select 2 union select 3
declare @id1 int, @max int, @min int, @i int
set @i = 2 --@i为你想要选的ID的值
select @max = @i
select @min = min(id1) from #t
while @max >= @min
begin
insert #t1 (id2) select Id1 from #t where id1 = @max
set @max = @max - 1
endselect * from #t where id1 in (select id2 from #t1)
drop table #t1, #t
的方法好。
不好意思,小弟的表达能力不强
总的想法是:
在得到了第一次查询记录后再次查询
查询出来的结果要是第一次查询的结果+第二次查询的结果
如果进行了N次查询,就要有N条记录,
因为一次只能查到一条记录
小弟根基差,看得不是很明(痛哭ing当年没读好书...)
select * from tablename where id<=3//這樣不就是三條記錄了麼?
不是TOP的3条啊
ID不是序号啊,是一个字段名.
我表中有一万条数记,
ID为:
00001
00002
.....
10000
我可能要抽其中的
01000和08756和04578等等...(不一定是3条,有时可能高达20条或以上)
你可以使用ClientDataset
参看李维的三本书。
但楼上好多同志都以为我是要
ID>3的数据
你自已写代码让DBGrid读取DataSet的数据不就可以了吗?DBGrid不与DataSet相连
不过他说是用PB写的
不过我想PB能做的DELPHI也能做吧?
如果实在不行用临时表也行吧
麻烦各位给出宝贵意见好吗?
小弟QQ是:276261745
先谢过啦
条件就是SELECT * FROM ABC WHERE ID LIKE '''+EDIT1.TEXT+'''正确答案:
1:SELECT * FROM ABC WHERE ID LIKE '''+EDIT1.TEXT+''' 写的是不对的。
应为sql:= 'SELECT * FROM ABC WHERE ID LIKE '+#39+'%'+Trim(EDIT1.TEXT)+'%'+#39;
2:sql:= 'select top'+ Trim(EDIT1.TEXT) +'a.YourFieldName from ABC a '+
' where ID LIKE '+#39+'%'+Trim(EDIT1.TEXT)+'%'+#39+
' order by newid()';
注:Trim(EDIT1.TEXT) 限制只能填入数字,在此不详述。
2:sql:= 'select top'+ Trim(EDIT1.TEXT) +'a.YourFieldName from ABC a '+
' where ID LIKE '+#39+'%'+Trim(EDIT1.TEXT)+'%'+#39+
' order by newid()';
改为:
2:sql:= 'select top'+ Trim(EDIT1.TEXT) +'a.YourFieldName from ABC a '+
' order by newid()';