需求是這樣的,有個資料表記錄著消費者購買的資料,要從這些資料中,抽出幸運的10個,分別依序是頭獎1、二獎2、三獎3、四獎4總共10個人,因此我需要從資料庫中亂數的撈出10筆購買資料,並且給予1~10的編號依序獲得獎項
其實這樣的需求只需透過SQL的語法讀區資料即可,假設我存放購買資料的Table名稱是TCustBuy那麼我所需要下的SQL與法如下:
SELECT TOP 10 IDENTITY(int,1,1) as NID, * INTO #TTT FROM TCustBuy ORDER BY NewId() SELECT * FROM #TTT
說明:
-
NewId():是會產生類似GUID不會重複的並且每次產生都不同的資料,因此Order By NewId()就能夠產生亂數排序的功能
-
TOP 10:的話就是取出其中的前10筆資料,由於資料已經亂數排序了,所以這樣就能夠每次執行都取出不同的10筆資料
-
IDENTITY(int,1,1):是產生不重複並依序的數字,但是他必須配合SELECT....INTO的方式使用,因此配合這個特性使用暫存Table的方式就能夠編出1~10的編號
全站熱搜
留言列表