SQL中隨機數函式簡介

2021-08-01 03:06:02 字數 1022 閱讀 5587

在sql server中,有個隨機函式rand(),有不少新手可能不知道存在這個函式,現在簡單的介紹下:

隨機函式:rand()

在查詢分析器中執行:select rand(),可以看到結果會是類似於這樣的隨機小數:0.36361513486289558,

像這樣的小數在實際應用中用得不多,一般要取隨機數都會取隨機整數。那就看下面的兩種隨機取整數的方法:

1、 a: select floor(rand()*n) —生成的數是這樣的:12.0

b: select cast( floor(rand()*n) as int) —生成的數是這樣的:12

2、 a:select ceiling(rand() * n) —生成的數是這樣的:12.0

b:select cast(ceiling(rand() * n) as int) —生成的數是這樣的:12

其中裡面的n是乙個你指定的整數,如100,可以看出,兩種方法的a方法是帶有.0這個的小數的,而b方法就是真正的整數了。

大致一看,這兩種方法沒什麼區別,真的沒區別?其實是有一點的,那就是他們的生成隨機數的範圍:

方法1的數字範圍:0至n-1之間,如cast( floor(rand()*100) as int)就會生成0至99之間任一整數

方法2的數字範圍:1至n之間,如cast(ceiling(rand() * 100) as int)就會生成1至100之間任一整數

對於floor與ceiling之間的區別,檢視幫助文件即可

比較 ceiling 和 floor

ceiling 函式返回大於或等於所給數字表示式的最小整數。floor 函式返回小於或等於所給數字表示式的最大整數。例如,對於數字表示式 12.9273,ceiling 將返回 13,floor 將返回 12。floor 和 ceiling 返回值的資料型別都與輸入的數字表示式的資料型別相同。

另外,最後提醒各位,如果想獲取表中任意n條記錄的辦法

select top n * from nicknamesurnames order by newid()

隨機數函式

說明 1 這兩個函式都在標頭檔案是stdlib.h中。2 rand 函式和srand 函式必須配套使用。1 rand 函式 原型 int rand void 功能 產生從0到rand max 0x7fff 之間的隨機數。標頭檔案 stdlib.h 例 include include int main...

生成隨機數函式rand用法簡介

函式rand 是真正的隨機數生成器,而srand 會設定供rand 使用的隨機數種子。如果你在第一次呼叫rand 之前沒有呼叫srand 那麼系統會為你自動呼叫srand 而使用同種子相同的數呼叫 srand 會導致相同的隨機數序列被生成。生成隨機數函式rand用法,如 所示 cpp view pl...

SQL 生成隨機數

select from northwind.orders order by newid 隨機排序 select top 10 from northwind.orders order by newid 從orders 表中隨機取出10 條記錄 示例a.對變數使用newid 函式 以下示例使用newid...