當前位置:首頁 » 編程語言 » sql隨機選取特定值
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql隨機選取特定值

發布時間: 2023-08-30 03:52:48

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

輸出: