㈠ 在sql中怎麼樣獲取隨機數
1、隨機小數 select rand(),
㈡ rand在SQL中的用法
隨機種子
如
declare
@a
int
set
@a=rand(100)
--你也可以初始化一下。
set
@a=rand()*100
--這就是表示從1到100之間取數
set
@a=rand()*100
--再次取隨機數字
㈢ sql2005,,select rand()*10 as ran;這個rand是[0,1]還是[0,1)還是(0,1]還是(0,1)
rand()產生一個介於0和1之間(不包含0和1)的38位精度的浮點數
所以是(0,1)
㈣ sql server里能解釋一下 rand round我知道定義,但是我不大理解,求大神指教
round() 遵循四捨五入把原值轉化為指定小數位數,如:round(1.45,0) = 1;round(1.55,0)=2
rand()取得是隨機數 默認范圍為(0~1) Rand()*100 范圍就是0~100(即0*100~1*100)
㈤ sql中的隨機函數怎麼用
sql server的rand()函數:返回0到1之間的隨機浮點值
round()函數:返回數值表達式,舍入到指定長度或精度。
例如隨機取得0~99之間的數: round(rand()*100,0)
隨機取得100~199之間的數:round(rand()*100+100,0)
㈥ 在sql2000中隨機產生100,200,300,400,500這五個隨機數 rand這個函數怎麼用
select cast(ceiling(rand() * 5)*100 as int)
㈦ rand在SQL中的用法
在查詢分析器中執行:select rand(),可以看到結果會是類似於這樣的隨機小數:0.776282033621286,像這樣的小數在實際應用中用得不多。
一般要取隨機數都會取隨機整數。
那就看下面的兩種隨機取整數的方法:
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
㈧ SQL如何獲取33-128之間的隨機整數
大家應該都知道sql server中Rand()函數用法了,好吧,如果你不知道,我們可以解釋一下:
Rand()函數:返回一個介於0和1之間的隨機float值。
但這個函數並沒有提供參數讓我們設置返回的隨機數的范圍,比如我只想返回一個大於或等於1但同時又要小於或等於100的整數。現在我們做一個自定義函數,用於返回一個指定最大值與最小值內的隨機整數。該自定義函數還是需要用到Rand系統函數,但因為在函數中是不能夠使用Rand函數的,如果有使用,會報以下的錯誤:
在函數內的 'rand' 中對帶副作用的或依賴於時間的運算符的使用無效
為了解決該問題,我們先創建一個視圖V_Rand,用於讀取一個隨機數,視圖代碼如下:
CREATE VIEW View_Rand
AS
SELECT RAND() AS RandValue
有了該視圖,我們就開始創建我們需要的函數了,sql如下:
CREATE FUNCTION [dbo].[udf_GetRandomInteger]
(
@MinValue int = null,
@MaxValue int = null
)
RETURNS int
AS
/*
函數名稱:udf_GetRandomInteger
功能簡述:取隨機整數
相關對象:無
參數:@MinValue 最小值
@MaxValue 最大值
*/
BEGIN
declare @RandomValue float
declare @ReturnValue int
while(1=1)
begin
--從隨機數視圖中獲取一個隨機值(因為函數中不能直接使用rand(),所以用V_Rand視圖代替)
select @RandomValue = RandValue from V_Rand
--根據最大最小值獲取隨機整數
if @MinValue is not null and @MaxValue is not null
begin
select @ReturnValue = ceiling(@RandomValue * @MaxValue)
if @ReturnValue >= @MinValue and @ReturnValue <= @MaxValue
begin
break
end
end
else if @MinValue is not null and @MaxValue is null
begin
select @ReturnValue = ceiling(@RandomValue * @MinValue)
if @ReturnValue >= @MinValue
begin
break
end
end
else if @MinValue is null and @MaxValue is not null
begin
select @ReturnValue = ceiling(@RandomValue * @MaxValue)
if @ReturnValue <= @MaxValue
begin
break
end
end
else if @MinValue is null and @MaxValue is null
begin
select @ReturnValue = convert(int,substring(convert(varchar(20),@RandomValue),3,20))
break
end
end
return @ReturnValue
END
上面的函數也有用到了ceiling()系統函數,該函數的作用就返回一個總是大於或等於指定的numeric值的整數。比如:ceiling(1.1),會返回2,celing(2),也會返回2,它不會對參數進行四捨五入的運算。
好了,函數創建完畢,我們可以開始測試該函數了,執行以下sql
select dbo.udf_GetRandomInteger(33,128)
㈨ sql server 中 Rand()如何截取 0-9的int數值
取出來的值用floor()函數處理一下
㈩ sql rand()
rand(datepart(ms,getdate())*1000)
datepart(ms,getdate())表示取當前時間的毫秒數
datepart(ms,getdate())*1000表示乘以1000
rand()表示以上面的數字得出一個隨機數。
在單個查詢中反復調用 RAND() 將產生相同的值,所以rand([seed]),你每次要修改種子seed的才能得出不一樣的隨機數。
浮點數是指帶小數的,5.0也是浮點數,可其實沒有小數。