在做資料庫查詢時有時會需要指對目前的查詢的資料做一個亂數的排序,小弟之前都是資料找出後,再用程式來做到 現在可利用 SQL 中的 NEWID() 函數來做。
NEWID() 建立 uniqueidentifier 型別的唯一值

MSDN 上的部份說明

uniqueidentifier 資料類型的資料行或本機變數,可以利用下列方法,初始化為一值:
.使用 NEWID 函數。
.從 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 格式的字串常數轉換,每個 x 都是在 0-9 或 a-f 範圍內的十六進位數字。

例如,6F9619FF-8B86-D011-B42D-00C04FC964FF 便是有效的 uniqueidentifier 值。

範例:
select top 10 A.sort,OrderID from (select (newid()) sort,* from orders) A Order by A.sort
以上的範例可依 newid()所產生的唯一值來排序並找出前10筆資料

另一個經驗分享,可能大家都知道了,之前在寫TSQL時,一直以為做select一定只能對資料表或view才能做,從沒有想過可以直接用一個select結果做為查詢的主體,看到時還想說為什麼可以select還來對select查詢,不過想想,view不就是一個select的結果嗎?
想想之前真是丫呆@@

創作者介紹
創作者 chchou 的頭像
chchou

雨中即景@痞客邦

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