当前位置:首页 » 编程语言 » sql随机抽取一半的数据
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql随机抽取一半的数据

发布时间: 2023-02-16 03:45:15

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取字段中某一部分特定数值

如果只是固定取"20/30"比较容易, 只需找到"20/30"在此字符串的开始位置,再截取5个字符的长度就可以了,如:
SELECT CASE WHEN CHARINDEX('mgdf13hj44jjjgasetrxzc20/30nj5weyu45f5645gjhkdfjkg', '20/30') > 0 THEN SUBSTRING('mgdf13hj44jjjgasetrxzc20/30nj5weyu45f5645gjhkdfjkg', CHARINDEX('mgdf13hj44jjjgasetrxzc20/30nj5weyu45f5645gjhkdfjkg', '20/30'),5) ELSE '' END

如果不一定是20/30,而是与"/"前后关联的数字(eg: 14/20, 33/66,等...),就麻烦了,你可能需要写一个抽取字符串的函数,如: f_substr(),然后在SQL里调用:
select 用户.f_substr('mgdf13hj44jjjgasetrxzc20/30nj5weyu45f5645gjhkdfjkg')

❸ SQL语句如何按照概率随机抽取数据

--题目没有表达清楚,我就写个差不多的sql给你吧。
--通过case语句来判断返回一个概率
selectid,state
casestatewhen1then0.1when2then0.3else0.05endas概率
from表a

❹ 如何从access数据库中用SQL语句随机抽取一条数据

首先看一下你的数据量多不多!
不过一般使用Access的数据也不会太多!

你可以这样做,用一个数组,将数据库中的记录不会有重复的列的值储存下来。
然后使用随机函数,从数组中抽区随机一个!
例子:
Dim DBVal()
………………(省略从数据库中读取数据的代码)
这里要强调一点,你数据库中的记录有多少条,你就要重新定义数组的维数上限
可以使用Redim关键字
Redim DBVal(1 To [数据库游标].RecordCount)

然后就可以开始抽选了:
Dim intRecordNum
Randomize '如果你的程序只抽取一条记录,则可以不要这个
intRecordNum = Int((UBound(DBVal) - 1) * Rnd) + 1

到这里,已经可以得出想要抽取的记录关键字了,你可以根据DBVal(intRecordNum)作为条件,搜索数据库中与该变量相符合的数据

❺ 使用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数据库中一次随机读取一条数据,而且以后随机读取出的数据不能和以前每次随机读取出的数据重复

一个简单的办法是你另外建一个历史记录表,每次问题抽出来后把那问题插到历史表中,当你抽下一提时只抽取历史表中不存在的题目就可以了.

❼ 怎样用sql语句取一张表的一半数据

select test,count(test) from test group by test having count(test)>1可以知道重复几次,不需要知道几次可以用select test from test group by test having count(test)>1

如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!

vaela

❽ 怎样用sql语句取一张表的一半数据

select
test,count(test)
from
test
group
by
test
having
count(test)>1可以知道重复几次,不需要知道几次可以用select
test
from
test
group
by
test
having
count(test)>1
如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
vaela

❾ php+mssql怎样随机从数据库里抽取某些数据不好意思啊,实在没有分了,只有15分了。在线等!!!!!!!

有三种方法
1.你可以通过sql随机查询来实现。
要随机数据量不大建议用以下方法:
2.php打乱数组,然后截取。
3.php数组循环赋值到js变量,再打乱截取。

❿ sql 随机抽取几条数据的方法 推荐

传说用这个语句管用:select
top
5
*
from
tablename
order
by
newid()
我放到sql的查询分析器里去执行果然管用,随机抽取5条信息,不停的换,结果我应用到程序里的时候就不管用了,总是那几条,于是对这个东西进行了一个研究得出另一种方法:
newid()
可以产生如:"49869293-8891-4B31-B88E-A584D9621490”
这样的数据结果,而且每一行产生的都不同,这样的话,我们就可以在查询的时候给结果集里加上这么一个列,比如:
select
*,newsid()
from
表名
然后我们在给这个结果集排序,因为每次newid()所产生的值都不同,所以如果排序的话,每次当然也都不一样,这样我们就可以随机挑选几条数据了,那我们在从前面加上一个top
语句就变成了:
复制代码
代码如下:
select
top
10
*,
NewID()
as
random
from
表名
order
by
random
用这样的方法就可以得到。我们想要结果了。不信的话你可以去试试。