SqlServer中獲取隨機值
阿新 • • 發佈:2021-06-21
使用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
輸出為