易截截图软件、单文件、免安装、纯绿色、仅160KB

关于SQLSERVER 查询的问题

大家好 最近遇到点麻烦 请大家帮忙 如下 :

我在一个学生的数据库 STU 中查询STUDENTS 表中 相关的数据

CREATE TABLE STUDENTS
(
ID INT IDENTITY(1,1) PRIMARY KEY ,
[NAME] VARCHAR(20) NOT NULL,
[CLASS] VARCHAR(10) NOT NULL,
SEX INT NOT NULL, -- 0或1
)

比如 根据 班级 性别 查询姓名

SELECT NAME from STUDENTS WHERE SEX=1 AND CLASS ='01班'

查询出 3000 条数据 

分两次提取

我第一次需要 2000 条  TOP 2000

第二次 我需要剩下的 1000  然后 TOP 1000 ....NOT IN... TOP 2000

我以为这样可以达到我希望的结果 但是

两次查出的数据有很多重复的

或许有 朋友会说 你笨啊  怎么不加  ORDER BY  ID

我也知道 但是 ORDER BY 后 速度会相当的慢

所以在这里 求助啦  先谢谢大家啦

看看加个索引可以解决不。

没有排序列top会随机返回的。

速度不会相当的慢  只有3000数据


order by 是必须的,可以考虑在id上建索引

可以考虑加个聚集索引....

SQL code:
SELECT TOP 1000 NAME from (SELECT DISTINCT TOP 2000 NAME from TB)AS T


集合运算符EXCEPT。 从左查询中返回右查询没有找到的所有非重复值。



引用
集合运算符EXCEPT。 从


相关问答:

求教 查看SqlServer执行过的存储过程状态

在SqlServer中如何查看历史上执行的存储过程的信息呢,如:传入参数,执行时间等等。如果不能查看历史记录,是否可以自己写触发器之类的,人工控制呢,在Oracle里面有动态视图可以随时查看历史执行的sql语句,SqlSer ......

sqlserver 日期类型转换

在数据库中日期如下显示:2009-2-27 9:40:47
这个不是我想要的,我需要月份和时间用两位数表示,上面的应该转换为;2009-02-27 09:40:47
请问
1、如何对现有日期进行转换(数据库中已存在许多类似的值,我需要将其 ......

.NET插入SQLSERVER延时问题? - .NET技术 / C#

有一台数据库服务器,客户端使用ADO.NET连接sql,使用ExecuteScalar执行SQL INSERT语句,然后客户端刷新不能查询到新INSERT的数据,过10秒左右才能查到新数据
什么原因
你做了缓存吗?

没做缓存

怎么会呢! ......

Delphi使用SQL Server如何可以不安装SQLServer2000

如题所示
小弟使用Delphi7环境进行数据采集,采集到的数据放入SQL Server2000数据库中,但是想不安装SQLServer2000来实现从其它计算机上运行此程序,不知如何实现?望各位大虾告知一二。
另外,现在小弟遇到了一个 ......

vs2008带的sqlserver和sqlserver有什么关系?

3G的VS2008,好像默认安装的时候带了很多东西。比如sqlserver2005,但是我不知道这个附带的sqlserver2005和sqlserver2005有什么关系?
一个是运行环境,一个是程序?
如果装了vs2008,再装sqlserver2005好像又 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号