需求是這樣的,有個資料表記錄著消費者購買的資料,要從這些資料中,抽出幸運的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的編號
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 alen1985 的頭像
    alen1985

    1與0的世界

    alen1985 發表在 痞客邦 留言(0) 人氣()