用SQL语句实现随机查询数据并不显示错误数据的方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用SQL语句实现随机查询数据并不显示错误数据的方法相关的知识,希望对你有一定的参考价值。

参考技术A 问题:上级单位要来检查数据,我的服务器的数据库是SQL server 2000,上级单位要求我用SQL语句在服务器端随机查询50条数据出来。可是我的服务器里有些错误数据不希望他们看到,能不能有什么办法不让他们看到。
  SQL语句: select top 50 x from a_1 where c=xxxx
  语句就是要求这样写,然后他们来运行,怎么办,有什么办法可以在sql server上设置,然后使得这50条数据只在我找出的数据(比如正确的数据400)里随机查询出。尽量不要改动SQL语句。
  Peak Wong:
  可用视图:
  对方抽取时:
  select top 50 * from t_view --视图名
  order by newID()
  在生成视图时,把不显示出来的排除。视图在查询时,也就是一个表名的方式//只要对方不知道数据库表就行了。
  SQL code
  复制代码
代码如下:
select top 10 ID,Name
  into T--生成测试表
  from sysobjects
  go
  create view Test--生成视图名
  as
  select * from T where ID>5
  go
  select top 2 * from test order by newID()--随机取两条
  说明:视图名,最好与表名比较相似就行了。create view Test--生成视图名
  with ENCRYPTION--加密一下,让对方看不到你的视图语句
  as
  select * from T where ID> 5
  go
本篇文章来源于 站长资讯网 原文链接:http://sqlserver.chinahtml.com/2007/119613367717217.shtml

在c#中随机抽取数据库中数据且不重复怎么实现SQL语句

这个没必要用一条sql语句来实现,可以采用变通的办法,你在C#程序中定义一个list,每次从数据库中随机抽取一条数据后将这条数据的id放入list中,下次随机抽取数据后去判断这条数据的id是否在list中,如果在则说明重复了,丢弃这条数据重新再取,这可能会有一定的效率损失,但是随机数重复的可能性本来就很小,这点效率损失没什么大不了的。 参考技术A select * from tablename order by newid()追问

这样可以随机抽题,但是会有重复的情况发生,怎么解决啊

参考技术B 建个临时表咯
抽了的不选

以上是关于用SQL语句实现随机查询数据并不显示错误数据的方法的主要内容,如果未能解决你的问题,请参考以下文章

如何用SQL语句实现某个字段数为随机数?

用sql语句实现'查询各部门名称和该部门员工数'

在c#中随机抽取数据库中数据且不重复怎么实现SQL语句

sql语句将EXCEL导入SQL数字太长引起SQL显示错误E+

MYSQL执行sql语句,批量更改为指定时间段的随机时间

SQL Server数据库用sql语句实现分页查询 (从M条数据开始,查找N条记录。sqlserver数据库。请举例说明。)