從 SQL 資料庫中隨機選取資料

摘要:從 SQL 資料庫中隨機選取資料

 

要從資料庫中隨機選取資料,可以使用如下的語法:

SELECT fieldA, fieldB FROM table ORDER BY NEWID()

其實如果你去查 SQL Server 線上叢書的話,你會發現 NEWID() 函數會產生並傳回 GUID,似乎並不是隨機函式。不過正因為 NEWID() 所產生的 GUID 本身就是隨機產生的,所以你可以藉由這個特性,使用它來排序的話,就可以讓它隨機排列了。

不幸的,如果你要把上面這道 SQL 指令從 VS2005 加入資料庫成為 Stored Procedure 的話,你會發現似乎不會成功,而且無法儲存。我想這應該是 VS2005 的一個 Bug,因為它似乎無法理解 NEWID() 這個函式,也不了解放置在行末的意義。變通之道,就是把它稍為修改一下,變成:

SELECT fieldA, fieldB, NEWID() AS NEWID FROM table ORDER BY NEWID

如此就可以儲存了。雖然從畫面上看起來仍有一些問題,但運作是完全正常的。


Dev 2Share @ 點部落