㈠ 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
㈡ sql 有重復記錄,想隨機取其中一條
下面是正確的寫法:
selectdistinctA1.貨號,(selecttop1A2.適用病症fromAasA2whereA1.貨號=A2.貨號orderbynewid())as適用病症
fromAasA1--其中A為你表的名稱
每次執行的結果都是隨機的。
㈢ 在SQL中怎麼樣獲取隨機數
1、隨機小數 select rand(),
㈣ sql 隨機抽取幾條數據的方法 推薦
四種資料庫隨機獲取10條數據的方法
SQL Server:
SELECT TOP 10 * FROM T_USER ORDER BY NEWID()
ORACLE:
SELECT * FROM (SELECT * FROM T_USER ORDER BY DBMS_RANDOM.RANDOM()) WHERE RONUM <= 10
MySQL:
SELECT * FROM T_USER ORDER BY RAND() LIMIT 10
Access:
SELECT TOP 10 * FROM T_USER ORDER BY rnd([一個自動編號欄位])
這條語句在 Access 中的「查詢」中是可以運行並得到隨機結果的,但在 ASP.NET等後台程序代碼中卻無法得到預期的隨機效果。
正確的寫法如下:
以ASP.NET為例:
Random random = new Random(System.Guid.NewGuid().GetHashCode());
int r = random.Next();
string sql = "SELECT TOP 10 * FROM T_USER ORDER BY RND(" + (-r) + "*自動編號欄位)"
㈤ 使用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
㈥ SQL為列隨機取指定值域中的一個怎麼寫
看下面的方法能不能符合你的要求
CREATETABLE#temp(col1 VARCHAR(50))
INSERTINTO#temp(col1)VALUES('Mike')
INSERTINTO#temp(col1)VALUES('Bob')
INSERTINTO#temp(col1)VALUES('Jack')
INSERTINTO#temp(col1)VALUES('Alice')
INSERTINTO#temp(col1)VALUES('Cathy')
DECLARE@countINT,@indexINT
SELECTIDENTITY(INT,1,1)ASid,col1INTO#temp2FROM#temp
SET@count=@@ROWCOUNT
SET@index=0
WHILE@index<5
BEGIN
DECLARE@rnd INT
SET@rnd=RAND()*@count+1
SELECTcol1FROM#temp2WHEREid=@rnd
SET@index=@index+1
END
輸出: