关于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。 从左查询中返回右查询没有找到的所有非重复值。
相关问答:
在SqlServer中如何查看历史上执行的存储过程的信息呢,如:传入参数,执行时间等等。如果不能查看历史记录,是否可以自己写触发器之类的,人工控制呢,在Oracle里面有动态视图可以随时查看历史执行的sql语句,SqlSer ......
在数据库中日期如下显示:2009-2-27 9:40:47
这个不是我想要的,我需要月份和时间用两位数表示,上面的应该转换为;2009-02-27 09:40:47
请问
1、如何对现有日期进行转换(数据库中已存在许多类似的值,我需要将其 ......
有一台数据库服务器,客户端使用ADO.NET连接sql,使用ExecuteScalar执行SQL INSERT语句,然后客户端刷新不能查询到新INSERT的数据,过10秒左右才能查到新数据
什么原因
你做了缓存吗?
没做缓存
怎么会呢! ......
如题所示
小弟使用Delphi7环境进行数据采集,采集到的数据放入SQL Server2000数据库中,但是想不安装SQLServer2000来实现从其它计算机上运行此程序,不知如何实现?望各位大虾告知一二。
另外,现在小弟遇到了一个 ......
3G的VS2008,好像默认安装的时候带了很多东西。比如sqlserver2005,但是我不知道这个附带的sqlserver2005和sqlserver2005有什么关系?
一个是运行环境,一个是程序?
如果装了vs2008,再装sqlserver2005好像又 ......