select distinct top m * from yourtable order by newid();
const n = 100; m = 10; var arrSelect : array[1..m] of integer; arrAll : array[1..n] of Integer; i,j:Integer;begin for i := 1 to n do arrAll[i] := i; Randomize; for i := 1 to m do begin j := random(n + 1- i) + 1; arrSelect[i] := arrAll[j]; if j <> n + 1- i then arrAll[j] := arrAll[n + 1- i]; end; end; // arrSelect中存的就是你要的记录号了,好不容易想出来的
n = 100;
m = 10;
var
arrSelect : array[1..m] of integer;
arrAll : array[1..n] of Integer;
i,j:Integer;begin
for i := 1 to n do
arrAll[i] := i; Randomize; for i := 1 to m do
begin
j := random(n + 1- i) + 1;
arrSelect[i] := arrAll[j];
if j <> n + 1- i then
arrAll[j] := arrAll[n + 1- i];
end;
end;
// arrSelect中存的就是你要的记录号了,好不容易想出来的