2011-11-05 58 views
-2

这段代码给了我最后的700条记录,而不是700条随机记录。如何从访问表中选择700条随机记录?

private string strsqlcommandBeta = " select top 700 LEFT(patronvalue17, INSTR(30, patronvalue17, ' ') -1) as patronvalue1, Rnd([objectid]) AS Ran from objectaer " + 
" order by objectdate desc" + 
" "; 

回答

3

我不是附近的MS Access,但是这给了一枪:

SELECT * FROM (
    SELECT top 700 LEFT(patronvalue17, INSTR(30, patronvalue17, ' ') -1) as patronvalue1, objectdate 
    FROM objectaer 
    ORDER BY Rnd([objectid])() 
) order by objectdate desc 

中RND([OBJECTID])应该给你一个随机数,通过什么样的排序,那么你你想在那之后。

+1

访问,而不是sql server –

+0

@JoelCoehoorntouché。我已经更新了它。 – Daryl

+0

现在我已经upvoted它;) –

0
SELECT * FROM (
    SELECT top 700 LEFT(patronvalue17, INSTR(30, patronvalue17, ' ') -1) as patronvalue1, objectdate 
    FROM objectaer 
    ORDER BY newid() 
) order by objectdate desc 

newid()函数生成其可以为了排序的表中使用,得到在每次运行时不同结果的随机GUID。我不知道你是否真的需要外部选择,它是用来按日期排序随机项目的降序

+0

你做了我在我的第一个答案,这是JoelCoehoorn评论的同一个错误。这是针对Access的,而不是SQL SERVER – Daryl