前言

前陣子因為工作關係,有好一段時間撰寫與練習 Stored Procedure。中間有一個簡單的需求,需要隨機取得特定筆數資料, 當下還真的不清楚有什麼語法或方法可以達到需求。經過 Google 搜尋後認識了 NEW() 函數,在這裡簡單紀錄使用方法。

關鍵字NEW()隨機取得資料


介紹

NEWID () 主要隨機建立類型 uniqueidentifier 資料,如下範例所示,每一次產生的 Id 皆不同。
註:uniqueidentifier 與 GUID 相同,使用的 16 位元組二進位值,為全球唯一識別碼。
以下列語法為例:
DECLARE @Id uniqueidentifier  
SET @Id = NEWID()  
SELECT @Id


我們也可以直接透過 SELECT 使用





隨機取得資料部分,我們將 NEWID() 使用在 ORDER BY 上,資料表隨機排列資料(以 Study4TW 官網活動資料表為例):
SELECT *
  FROM [dbo].[Activity]
 ORDER BY NEWID()


如果加上 TOP N 語法,就達到目的,隨機取的 N 筆資料
SELECT TOP 3 *
  FROM [dbo].[Activity]
 ORDER BY NEWID()