当前位置:首页 » 编程语言 » 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

输出: