2011-03-29 46 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