從資料中抽出幸運的10個人,分別依序頒發頭獎 * 1位、二獎 * 2位、三獎 * 3位、四獎 * 4位,總共10個人。
需求
從資料中抽出幸運的10個人,分別依序頒發頭獎 * 1位、二獎 * 2位、三獎 * 3位、四獎 * 4位,總共10個人。
概念
從資料庫中亂數的撈出10筆資料,並將1~10編號依序獲得獎項
在使用SQL將資料撈出時,就能限制條件,只撈出這些資料。
做法
SELECT TOP 10 IDENTITY(int,1,1) as user_seq, *
INTO #result
FROM user
ORDER BY NewId()
SELECT *
FROM #TTT
說明
SELECT * INTO #result
‧ result 是建立一個虛擬Table,暫時將資料存放於此,然後再從result撈資料出來。
‧ user 是顧客Table
‧ user_seq 是顧客Table的序號欄位
‧‧IDENTITY(int,1,1) 產生不重複並依序的數字,必須配合SELECT .. INTO 使用
‧ Order By NewID() 能產生亂數排序
最後記得要清空暫存
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
DROP Table #result
還看到另一種方法:
TOP 10 *
FROM Temp
(
SELECT DISTINCT user_seq FROM user
) AS result
Order by newid()