sql隨機數函數
『壹』 如何在sql里生成隨機數
從 RAND 生成隨機數的常用方法是,用相對可變的某個值作為種子值,例如將 GETDATE 的幾個部分累加:
SELECT RAND( (DATEPART(mm, GETDATE()) * 100000 )
+ (DATEPART(ss, GETDATE()) * 1000 )
+ DATEPART(ms, GETDATE()) )
『貳』 怎麼用SQL語句實現某個欄位數為隨機數,如一個表裡的學號欄位,怎麼讓這個學號自動生成7位數的隨機數
1、以某整數欄位為種子(沒有的話要生成一個)
2、通過RAND函數生成一個0-1之間的隨機數。如0.7136106261841817
3、然後轉換成文本型
4、再取後7位即可RIGHT(CONVERT(VARCHAR,RAND(序號)),7) 。
具體語句如下:
如果表中有一個欄位為整型的序號或標識列,那麼就可以以序號為種子生成隨機的學號欄位。
UPDATE TABLENAME SET 學號=RIGHT(CONVERT(VARCHAR,RAND(序號)),7) WHERE 序號 IS NOT NULL
如果沒有整型的序號或標識列,就要根據表中能夠唯一標識確定某行的關鍵欄位來生成學號,如ID
UPDATE TABLENAME SET 學號=RIGHT(CONVERT(VARCHAR,rand((select count(1) from tablename a where a.id>=tablename.id))),7)
『叄』 sql中的隨機函數怎麼用
sql server的rand()函數:返回0到1之間的隨機浮點值
round()函數:返回數值表達式,舍入到指定長度或精度。
例如隨機取得0~99之間的數: round(rand()*100,0)
隨機取得100~199之間的數:round(rand()*100+100,0)
『肆』 請問大家如何在SQL里生成四位隨機數
在SQL里先隨機生成1個數字,1-9,A,在隨機生成3個數字,0-9,BCD。然後隨機生成的四位數為:A*1000+B*100+C*10+D。
『伍』 sql server 怎麼生成隨機數
rand() 定義: 返回從0到1之間的隨機浮點值。
舉例說明:
select rand() as 隨機數 結果如圖:
select cast( floor(rand()*N) as int ) --方法1
結果:20
select cast( ceiling(rand()*N) as int ) --方法2
結果:43
大致一看,這兩種方法沒什麼區別,區別就是他們的生成隨機數的范圍:
方法1的數字范圍:0至N-1之間,如cast( floor(rand()*100) as int)就會生成0至99之間任一整數
方法2的數字范圍:1至N之間,如cast(ceiling(rand() * 100) as int)就會生成1至100之間任一整數
比較 CEILING 和 FLOOR
CEILING 函數返回大於或等於所給數字表達式的最小整數。FLOOR 函數返回小於或等於所給數字表達式的最大整數。
例如,對於數字表達式 12.9273,CEILING 將返回 13,FLOOR 將返回 12。
『陸』 SQL語句隨機產生隨機數
產生隨機數:right(rand(),4)
rand()返回一大串帶小數點的數字,用right()截取後面的四位是不是變成了整數
『柒』 在SQL Server數學函數中,獲取0~1之間的隨機值的函數是什麼
MSSQLSERVER如要獲取0~1之間的隨機數可以使用下列表達式:
Floor(2* Rand())
例如每次運行下列SQL語句,將隨機返回0或1
selectFloor(2*Rand());
請注意MSSQL的SQL語言,每次運行select,不論檢索出多少行,隨機函數rand都將返回相同的隨機數。
另外,需要返回某個指定范圍的隨機整數請參考下列公式:
Floor((upperbound - lowerbound + 1) * Rand() + lowerbound)
參數說明:
upperbound 為正整數上限
lowerbound 為正整數下限
Rand()為系統隨機函數
Floor()為系統函數,返回小於或等於所給數字表達式的最大整數。
有不同需要時,照套上述公式就可以了。