2011-03-29 45 views
0

我在PostgreSQL服务器数据库上有一个表,几乎有3百万行,我需要将所有行保存到一个CSV文件。这里的问题是,每次运行该过程时,行必须保存在不同的随机订单中。如何从postgreSQL表中检索随机数据行?

值得注意的是它是一个C#WinForms应用程序。

我尝试将数据加载到列表<>并使用洗牌算法,但它花了很长时间才完成,我真的需要它快。我认为直接在查询中执行会更快,但我不知道如何执行。

回答

2

通常情况下,你可以ORDER BY的数据库味道随机函数,像

SELECT * FROM table ORDER BY RANDOM() 

这可能是因为洗牌的名单,根据数据库服务器或产品上慢。

+0

花了16秒返回查询,还算可以接受,比洗牌的方式更快。非常感谢。 – 2011-03-29 13:12:04