㈠ 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
输出: