动态添加SQL语气如
 select * from abc where id=2 and id=1 and id=3 等之类的可以做到

解决方案 »

  1.   

    qhf503(和风)
    大哥,我的'ID'是动态的,不是固定的
    按你的意思好像不行吧?
    我是要从一个表中随意抽出2个以上的数据啊,但一次只能抽出一个,
    条件就是SELECT * FROM ABC WHERE ID LIKE '''+EDIT1.TEXT+'''
      

  2.   

    select * from abc where ID <= '''+EDIT1.TEXT+'''还是select top '''+EDIT1.TEXT+''' * from abc
    ?
      

  3.   

    create table #t (id1 int)
    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
      

  4.   

    windindance(风舞轻扬)
    的方法好。
      

  5.   

    windindance(风舞轻扬)
    不好意思,小弟的表达能力不强
    总的想法是:
    在得到了第一次查询记录后再次查询
    查询出来的结果要是第一次查询的结果+第二次查询的结果
    如果进行了N次查询,就要有N条记录,
    因为一次只能查到一条记录
      

  6.   

    tdtjjiao(给分) 
    小弟根基差,看得不是很明(痛哭ing当年没读好书...)
      

  7.   

    難道不可以用
    select * from tablename where id<=3//這樣不就是三條記錄了麼?
      

  8.   

    我要的是随意的记录,
    不是TOP的3条啊
    ID不是序号啊,是一个字段名.
    我表中有一万条数记,
    ID为:
    00001
    00002
    .....
    10000
    我可能要抽其中的
    01000和08756和04578等等...(不一定是3条,有时可能高达20条或以上)
      

  9.   

    那就用stringgrid吧用dbgrid的话,就得用qhf503(和风)的方法了回复人: qhf503(和风) ( ) 信誉:95  select * from abc where id=2 and id=1 and id=3 等之类的可以做到
      

  10.   

    很遗憾,ADO没有这个功能。
    你可以使用ClientDataset
    参看李维的三本书。
      

  11.   

    我要的是随意的数据
    但楼上好多同志都以为我是要
    ID>3的数据
      

  12.   

    应该可以的。
    你自已写代码让DBGrid读取DataSet的数据不就可以了吗?DBGrid不与DataSet相连
      

  13.   

    我看到别人的软件是可以做到递增查询的.
    不过他说是用PB写的
    不过我想PB能做的DELPHI也能做吧?
    如果实在不行用临时表也行吧
    麻烦各位给出宝贵意见好吗?
    小弟QQ是:276261745
    先谢过啦
      

  14.   

    我是要从一个表中随意抽出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) 限制只能填入数字,在此不详述。
      

  15.   

    不好意思,上面的多写了一行。
    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()';