當前位置:首頁 » 編程語言 » sql隨機整數

sql隨機整數

發布時間: 2022-04-22 23:32:47

『壹』 用sql 產生隨機數字

不同的資料庫,寫法是不一樣啊!對於Access資料庫,可以用這個方法實現:
SELECT
Int(Rnd()*100)+1
AS
r1,Int(Rnd()*100)+1
AS
r2,Int(Rnd()*100)+1
AS
r3
如此循環。其他資料庫的寫法類似。
但是如果純粹用sql生成50*200個隨機數,很麻煩的。如果要簡單些,需要額外寫SQL
Server的存儲過程或者Access的宏函數。
可以用Excel表來實現,見附件。

『貳』 如何用SQL語句實現某個欄位數為隨機數

以某整數欄位為種子(沒有的話要生成一個),通過RAND函數生成一個0-1之間的隨機數。如0.7136106261841817,然後轉換成文本型,再取後7位即RIGHT(CONVERT(VARCHAR,RAND(序號)),7) 。

『叄』 如何在SQL里生成隨機數

從 RAND 生成隨機數的常用方法是,用相對可變的某個值作為種子值,例如將 GETDATE 的幾個部分累加:

SELECT RAND( (DATEPART(mm, GETDATE()) * 100000 )
+ (DATEPART(ss, GETDATE()) * 1000 )
+ DATEPART(ms, GETDATE()) )

『肆』 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 獲取1到10之間的隨機整數

1到10之間的隨機整數:
Select Round(Rand()*9+1,0)
n到m之間的隨機整數(n<m):
Select Round(Rand()*(m-n)+n,0)

『陸』 sql server隨機產生20個50到100之間的隨機整數,使用WHILE語句顯示這20個隨機數.

其實這個問題很簡單了
你都知道的,rand()
函數產生的是0到1之間的小樹
那麼用rand()*100
就是0到100的整數(可以用直接截取前面兩位也就是
整數部分
,然後過濾出大於50的)

『柒』 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 產生10個20—99之間的隨機整數

SELECT FLOOR(RAND()* 79 + 20)
用上面的sql執行,可以得出20到99之間的一個隨機整數,然後你可以用循環或者重新使用10次得出10個隨機數

『玖』 使用SQL語句取隨機數的方法

SQL隨機查詢語句,[資料庫使用技巧]SQL語句生成隨機數,如何隨機顯示sql查詢語句查詢的數據記錄集中的20條,隨機取出若干條記錄的SQL語句,使用SQL語句取隨機數的方法
方法如下:
SQL
Server:
Select
TOP
N
*
From
TABLE
order
By
NewID()
Access:
dim
r
randomize
r
=
rnd
sql
=
"select
top
10
*
from
table
order
by
rnd("
&
r
&
"-id)"
rnd("
&
r
&
"-id)
其中的id是自動編號欄位,可以利用其他任何數值來完成,比如用姓名欄位(UserName)
select
top
10
*
from
table
order
by
rnd("
&
r
&
"-Len(UserName))
MySql:
Select
*
From
TABLE
order
By
Rand()
Limit
10
orACLE:
select
*from
(select
*from
t
order
by
dbms_random.value)
where
rownum<10

熱點內容
資料庫系統的例子 發布:2025-05-18 03:02:42 瀏覽:191
數字化儲存與編譯是什麼 發布:2025-05-18 02:56:55 瀏覽:217
個人網站模板源碼 發布:2025-05-18 02:51:17 瀏覽:490
主伺服器ip地址 發布:2025-05-18 02:46:29 瀏覽:856
電腦配置太低玩不了絕地求生怎麼辦 發布:2025-05-18 02:38:39 瀏覽:797
存儲過程怎麼出錯了 發布:2025-05-18 02:37:16 瀏覽:368
32寸演算法 發布:2025-05-18 02:22:14 瀏覽:744
寶塔資料庫備份 發布:2025-05-18 02:14:18 瀏覽:193
安卓商店下載的光遇是什麼服 發布:2025-05-18 02:13:38 瀏覽:32
網頁挖礦源碼 發布:2025-05-18 02:13:34 瀏覽:308