如何从访问表中选择700条随机记录?
问题描述:
这段代码给了我最后的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" +
" ";
答
我不是附近的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])应该给你一个随机数,通过什么样的排序,那么你你想在那之后。
答
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
访问,而不是sql server –
@JoelCoehoorntouché。我已经更新了它。 – Daryl
现在我已经upvoted它;) –