A. sql 觸發器與一定范圍內的隨機數產生
寫了一個例子給你,隨機數函數 在 2 8 14 29 42 五個數中隨機選選中一個
sqlserver環境 有問題再追問,望採納。
createviewv_random
as
selectcast(floor(RAND()*100)asint)%5asrandom
go
createfunctionRandom()
returnsint
as
begin
declare@numint,@reltint
select@num=randomfromv_random;
if@num=0
set@relt=2;
elseif@num=1
set@relt=8;
elseif@num=2
set@relt=14;
elseif@num=3
set@relt=29;
else
set@relt=42;
return@relt
end
--調用
selectdbo.Random()
B. 使用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
C. 請問怎麼用SQL函數按職位范圍生成對應的隨機數
用隨機數吧,語句復雜點
select *,
cast(left(獎金範圍,charindex('-',獎金範圍)-1) as int),
cast(right(獎金範圍,len(獎金範圍)-charindex('-',獎金範圍)) as int),
cast(left(獎金範圍,charindex('-',獎金範圍)-1) as int) + convert(numeric(9,2), rand()*(CONVERT(int, ABS(CHECKSUM(NEWID())), 8 ) % (cast(right(獎金範圍,len(獎金範圍)-charindex('-',獎金範圍)) as int) - cast(left(獎金範圍,charindex('-',獎金範圍)-1) as int))))
from table1
D. 如何用SQL語句實現某個欄位數為隨機數
以某整數欄位為種子(沒有的話要生成一個),通過RAND函數生成一個0-1之間的隨機數。如0.7136106261841817,然後轉換成文本型,再取後7位即RIGHT(CONVERT(VARCHAR,RAND(序號)),7) 。
E. sql取給定范圍的隨機取幾個指定數據
增加一個int欄位,取隨機數
然後設置隨機數
Create PROCEDURE [dbo].[prodsn] as
begin
declare @i as int
declare @num int
set @i=0
while (@i<2000)----2000是你的記錄數,直接count出記錄數來,寫這里(這里最好是條件)
begin
set @num=(CONVERT(int,round(rand()*(2),(0)),(0)))
if @num==0
begin
update a set er='21:00' where 條件
end
if @num==1
begin
update a set er='22:00' where 條件
end
if @num==2
begin
update a set er='23:00' where 條件
end
set @i=@i+1
end
end
F. 如何用SQL為每一行均產生一個隨機數
select
dbms_random.random
from
al;
返回的是binary_integer
類型值,產生任意大小的隨機數(正或者負)binary_integer
,范圍為2的31次方到-2的31次方。
具體還有很多關於隨機數字或者字母的使用,都是關於dbms_random系統包的用法,
例如dbms_random.value
;
dbms_random.normal
;
dbms_random.string
;
可以上網查詢下。
G. 怎麼用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)
H. sql server 怎麼生成隨機數
--創建視圖
create
view
myview
as
select
re=rand()
--自定義函數:取得指定范圍的隨機數
create
function
mydata(
@a
int,
@b
int)
returns
decimal(38,0)
as
begin
declare
@r
decimal(38,0)
select
@r=cast(re*(@b-@a)+@a
as
decimal(38,0))
from
myview
return(@r)
end
go
--調用(可以隨意指定你要的數據范圍)
select
user_no,dbo.mydata(1000,9999)
number
from
table1
--可以在你原來的查詢基礎上增加一列number,如不增加列,
--那就把上面的結果放入一個臨時表
#a,然後update
--如:
update
table1
set
number1=a.number
from
#a
a,table1
b
where
a.user_no=b.user_no
I. 在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()為系統函數,返回小於或等於所給數字表達式的最大整數。
有不同需要時,照套上述公式就可以了。