您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> Delphi >> 在线等待 ,我用delphi7写程序,要用sql 随机抽取表a中按字段zd降序排列的前30条记录中的任意十条记录,请问如何写sql语句?

在线等待 ,我用delphi7写程序,要用sql 随机抽取表a中按字段zd降序排列的前30条记录中的任意十条记录,请问如何写sql语句?

来源:网络整理     时间:2016/8/10 7:46:11     关键词:

关于网友提出的“ 在线等待 ,我用delphi7写程序,要用sql 随机抽取表a中按字段zd降序排列的前30条记录中的任意十条记录,请问如何写sql语句?”问题疑问,本网通过在网上对“ 在线等待 ,我用delphi7写程序,要用sql 随机抽取表a中按字段zd降序排列的前30条记录中的任意十条记录,请问如何写sql语句?”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 在线等待 ,我用delphi7写程序,要用sql 随机抽取表a中按字段zd降序排列的前30条记录中的任意十条记录,请问如何写sql语句?
描述:

在线等待 ,我用delphi7写程序,要用sql 随机抽取表a中按字段zd降序排列的前30条记录中的任意十条记录,请问如何写sql语句?


解决方案1:

哥们,实在不知道你遇到什么错误,无语,Delphi2007的代码,无错:


procedure TForm9.Button1Click(Sender: TObject);
var
  FADOConnection:TADOConnection;
begin
  FADOConnection:=TADOConnection.Create(nil);
  try
    FADOConnection.LoginPrompt:=False;
    FADOConnection.ConnectionString:='Provider=SQLOLEDB.1;Password=;Persist Security Info=True;User ID=sa;Initial Catalog=testdb;Data Source=127.0.0.1';
    FADOConnection.Open;
    FADOConnection.Execute('select top 10  * from ( select top 30 * from table1  where (1=1) order by id desc) as temptable order by rand(-(id)*rand())');//temptable别名而已
  finally
    if FADOConnection.Connected then FADOConnection.Close;
    if Assigned(FADOConnection) then FreeAndNil(FADOConnection);
  end;
end;
解决方案2:


with ADOQuery1 do
  begin
    Close;
    sql.Clear;
    sql.Add('SELECT TOP 10 * FROM (SELECT TOP 30 * FROM a ORDER BY zd DESC) DERIVEDTBL ORDER BY NEWID()');
    Open;
  end;

用着好了,我刚才在mssql2000上测试过了可以实现!
以上介绍了“ 在线等待 ,我用delphi7写程序,要用sql 随机抽取表a中按字段zd降序排列的前30条记录中的任意十条记录,请问如何写sql语句?”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3180569.html

相关图片

相关文章