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

问题:上级单位要来检查数据,我的服务器的数据库是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

时间: 2024-10-02 16:28:36

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

Sql语句与存储过程查询数据的性能测试实现代码_MsSql

一.建立数据库Liezui_Test ID int 主键 自增 Title varchar(100) ReadNum int 二.向数据库中插入100万条数据 declare @i int set @i=1 while @i<=500000 begin insert into Liezui_Test(Title,ReadNum) values('执行总数统计',@i) set @i=@i+1 end GO declare @i int set @i=1 while @i<=500000 beg

Sql语句与存储过程查询数据的性能测试实现代码

一.建立数据库Liezui_Test ID int 主键 自增 Title varchar(100) ReadNum int 二.向数据库中插入100万条数据 declare @i int set @i=1 while @i<=500000 begin insert into Liezui_Test(Title,ReadNum) values('执行总数统计',@i) set @i=@i+1 end GO declare @i int set @i=1 while @i<=500000 beg

SQL语句实现删除ACCESS重复记录的两种方法_MsSql

以下就重复记录删除的问题作一阐述. 有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略. 1.对于第一种重复,比较容易解决,使用 select distinct * from tableName 就可以得到无重复记录的结果集. 如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除 复制代码 代码如下: select distinct * into #Tmp from table

数据-怎样用sql语句,使查询速度更快

问题描述 怎样用sql语句,使查询速度更快 在使用数据库的过程中,经常会有10W条甚至100W条级以上的数据记录,使用常规的sql语句在这种级别的数据库中查询,反馈的速度非常慢,时有几分钟才能得到查询反馈的数据结果:本人曾经看过一个sql语句,能在100W级的数据记录中,只用几秒的时间就得到查询结果,但是现在却不曾记得那条语句是如何写的了,不知哪位大神有类似或者这种技能,能否指点小弟一下 解决方案 1.建立索引 2.优化SQL语句 3.条件精确,使用索引 4.最好使用内部过程 5.只取需要的数据

sql语句 连表查询-连表查询 sql语句问题

问题描述 连表查询 sql语句问题 有个商品表,和商品属性表,一个商品,在商品属性表里有好几条,我想连表查出,一条商品对应的两个属性,两个属性在一行显示,怎么查,属性表的数据是这样 1 商品id 规格 2 商品id 厂家 我想要的结果: 1 商品id 规格 厂家 大能们,帮帮忙 解决方案 查询库中有多少表的SQL语句单表查询树形结构的SQL语句命名查询的sql语句的问题 解决方案二: 你select出来的结果当成colum

Sql Server 存储过程中查询数据无法使用 Union(All)

原文:Sql Server 存储过程中查询数据无法使用 Union(All) 微软Sql Server数据库中,书写存储过程时,关于查询数据,无法使用Union(All)关联多个查询.     1.先看一段正常的SQL语句,使用了Union(All)查询:      SELECT ci.CustId --客户编号 , ci.CustNam --客户名称 , ci.ContactBy --联系人 , ci.Conacts --联系电话 , ci.Addr -- 联系地址 , ci.Notes --

MySQL 随机查询数据与随机更新数据实现代码_Mysql

MySQL随机查询数据 以前在群里讨论过这个问题,比较的有意思.MySQLl的语法真好玩.他们原来都想用PHP的实现随机,但取出多条好像要进行两次以上查询.翻了手册,找到了下面这个语句,可以完成任务了. 复制代码 代码如下: SELECT * FROM table_name ORDER BY rand() LIMIT 5; MySQL的rand()函数在手册里是这么说的: RAND() RAND(N) 返回在范围0到1.0内的随机浮点值.如果一个整数参数N被指定,它被用作种子值. 关于MySQL

sql语句多表查询中聚合函数的使用问题

问题描述 sql语句多表查询中聚合函数的使用问题 表A,B,C. A表中有title,code, b表中为code,media_code;(均不为主键,code会有重复) c表中有media_code,shrink (media_code为主键) 我的目的为取出A表中的title和c表中的shrink 联立:A.code→B.code, B.media_code→C.media_code 代码如下 select title,shrink from tableA,tableC where medi

mdb-利用SQL语句将原来的数据表进行修改

问题描述 利用SQL语句将原来的数据表进行修改 由于比较复杂,所以我想做的简单一点,就是将原来mdb里面选中的那张表,直接清空数据(保留列名),然后再重新给他一张新的表.因为我一开始是将DGV的表格导入MDB中,现在修改了DGV中的值,想要连带着MDB中的值也一起修改,之前用的sql是插入,所以如果用原先的方法,他还是插入一张新的,我需要的是修改而不是插入 解决方案 清空MDB里面的表,在导数据不就行了 解决方案二: 直接用update table 字段=新值 where id=xxx就可以了.