1. 程式人生 > 其它 >SqlServer中獲取隨機值

SqlServer中獲取隨機值

使用rand()函式

select rand()

輸出

0.0329578509224172

rand()函式獲取區間(0,1)之間的float型別的數,但不支援在查詢中新增一列隨機值

select rand(),* from rent_device

輸出結果為

生成的隨機數一樣

使用checksum()函式和newid()函式

select newid()

輸出

CCC6DD8A-C6D9-406E-8753-88FAECE53106

得到一個類似於java中UUID的唯一值

select checksum(1),checksum(-1),checksum('abc'),checksum(newid())

checksum()函式可以當做一個雜湊函式

select convert(bigint,right(abs(checksum(newid())),9)) * 1.0 / 1000000000

newid()得到一個唯一值,checksum()將字串雜湊成一個數字,abs()取絕對值,right()取右邊的後9位,convert()將字串轉換成bigint型別,運算之後得到

0.541767396000

可以達到rand()類似的效果,且支援新增一列隨機值

select convert(bigint,right(abs(checksum(newid())),9)) * 1.0 / 1000000000 隨機數,* from rent_device

輸出為

參考

SQLServer隨機數的獲取