sql2005怎么随机抽取表中的5条数据?

sql2005怎么随机抽取表中的5条数据?,第1张

Select

Top

5

*

From

表名

Order

By

NEWID()

newid

产生的新的值是不固定的

在Select表里的数据的NEWID()

函数时候

随即选出N条记录

。希望能够帮助你

传说用这个语句管用: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

用这样的方法就可以得到。我们想要结果了。不信的话你可以去试试。

1、对于MS SQL来说,任何一个表里的记录都是“没有顺序”的,如果有顺序,那只是为了便于存储。默认情况下,SQL服务器会按最便宜的方法将新的数据放入数据库的文件中,这个位置可能是服务器认为最便宜的位置。

2、对于MS SQL来说,用户要取数据的话,如果不指定排列顺序要求,那它就会按它认为最方便的检出顺序列出记录,这个记录顺序并不一定每回都是一样的。不过,如果你不重新起动SQL服务,且没有新的数据插入的话,这个记录顺序一般都是一样的。

3、对于有排序要求的输出来说,你应该指定排列顺序,事实上,多数人在设计数据库时,会加入一个自增字段,这个字段每次加入新的记录时就会自增其数值,即便删除了记录,新的记录的数值也不会与曾经有过的数值重复,你想要将这些数值重新理顺的话,唯一方法是将这个字段删去后重建一个相同的字段。

4、如果你是想偷偷的做坏事不想让人发现,个人建议你别在重要的数据库中干坏事,否则后果可能会很严重哦。绝大多数企业级数据库是会有定时备份的,专业人员是能发现问题的。此外,大型数据库的很多表是相互关联印证的,并不是改一个表就可以了,强行修改的结果一般都是引起整个系统的故障。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10866410.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存