教程学院
图像设计 多媒体类 机械制图 办公软件 操作系统 系统编程 网站编程 网页制作 数据库类 网络路由 网络工程 网络安全 考试认证
firefox火狐浏览器下载
酷网学院
CAD
AutoCad Cam350 ProEngineer GCcam MATLAB Unigraphics SolidWorks CAXA Solid3000 Cimatron EdgeCAM
系统
安全 防火墙 病毒 WinXP Win2003 Vista
数据库
编程
网络
精彩图库
  当前位置: 库库中文网 · 数据库类教程 · MSSQL教程 · MsSql综合技巧

sql ID不标准查询

学院最新推荐文章
教程推荐
『sql ID不标准查询』如果文章有大量图片,显示会较慢,请等待图片下载完成
 
点击数: 更新时间:2008-9-28 
我有这么几条数据
ID name
1  aa
3  ss
5  gg
2  af
4  te
6  rt
这个已经是排序后的
我第一个要查出top2
那么就是1 3
 现在我第2次要查村 5,2 要怎么查 not in的语句如何写?
注ID 是自动增长的

这个问题第1个回答:
注ID 是自动增长的:
你表里记录会这样?

这个问题第2个回答:
按什么排序的啊?
这个问题第3个回答:
select top 2 * from test where id not in (select top 2 id from test)
这个问题第4个回答:
新建一个标识列

如果这样分页查询的话,可能有点难度
这个问题第5个回答:
我只是举个例子
真正的数据不是这样的
 
 能解决吗?
这个问题第6个回答:
给出具体代码吧
这个问题第7个回答:
引用 3 楼 sdxiong 的回复:
select top 2 * from test where id not in (select top 2 id from test)


好像不行。。。。。。
这个问题第8个回答:
明显不行..id 是不规则的

这个问题第9个回答:
引用 8 楼 cc123456 的回复:
明显不行..id 是不规则的
为什么,不规则总没有重复的吧?
这个问题第10个回答:
对 是自动编号的 肯定不重复
 能有办法吗?
这个问题第11个回答:
declare @a table(id int,name varchar(20))
insert into @a

select 1,'1' union all
select 2,'4' union all
select 3,'2' union all
select 4,'5' union all
select 5,'3' union all
select 6,'6'

select top 2 * from @a where  id not in (select top 2 id from @a order by name)
order by name

可以实现,前提是前后的排序规则要一致

这个问题第12个回答:
ID為自增連續列
select * from tablename where identitycol between n and m
这个问题第13个回答:
如果tablename里没有其他identity列,那么:
select identity(int) id0,* into #temp from tablename
取n到m条的语句为:
select * from #temp where id0 >=n and id0 <= m

这个问题第14个回答:
我有这么几条数据
ID name
1  aa
3  ss
5  gg
2  af
4  te
6  rt
这个已经是排序后的
>>>
是按哪个字段排序的呢? TOP再结合你排序的那个字段就行了。



这个问题第15个回答:
再不然就这样..

SQL code





SELECT TOP 2 * 

from (

    select top (4) * from t1 where a not in (select top (2) a from t1)

    )a








这个问题第16个回答:
15楼 有错误~~
这个问题第17个回答:
我是按3个字段排序的

因为考虑到公司利益问题
因此只放出一个这样的
这个问题第18个回答:
引用 16 楼 cc123456 的回复:
15楼 有错误~~


是逻辑不对吗还是什么错误提示?
这个问题第19个回答:
提示(号错误
但是我无法找到是哪个(号错误...
因为我感觉是对的
这个问题第20个回答:
我有ind列
我的ID就是
这个问题第21个回答:
哦...TOP后加了(),2000就多此一舉了。


SQL code



SELECT TOP 2 * 

from (

    select top 4 * from t1 where a not in (select top 2 a from t1)

    )a




这个问题第22个回答:
这样就会提示A无效~~~~
这个问题第23个回答:
引用 22 楼 cc123456 的回复:
这样就会提示A无效~~~~


晕菜了....

你把字段替换成你table里面的字段呀.


SELECT TOP 2 * from ( select top 4 * from YourTableName  where ID not in (select top 2 ID from t1) ) tmp
这个问题第24个回答:
明白了

作者:cc123456 来源:C.S.D.N
】【关闭窗口
·上页:
·下页:
相关文章
     数据库类教程 - MsSql综合技巧
普通教程【脑袋快想爆炸了- -!】 怎么样
普通教程关于级联删除地疑难,新手提问,
普通教程怎么样动态控制列数?
普通教程数据库恢复 MS2000
普通教程当数据库中varchar字段值为null
普通教程create function 怎么才无法要返
普通教程各位帮我看看是啥疑难啊, SQL运
普通教程SQL server 2005 安装疑难 SP2更
普通教程sql update
普通教程update触发器地疑难
普通教程字符串地查询疑难
普通教程安全性--登陆--想建一个用户tes
精彩图片汇集
advertisement
关于站点 - 广告服务 - 联系我们 - 版权隐私 - 免责声明 - 合作伙伴 - 程序支持 - 网站地图 - 返回顶部
网站文本地图
版权所有:库库中文 2005-2007 欢迎各种媒体转载我们的原创作品[转载请注明出处]
copyright © 2005-2008 www.QQGB.com online services. all rights reserved. 蜀ICP备05015578
Template designed by Virus. Optimized for 1024x768 to Firefox,Opera and MS-IE6. Site powered by EQL.
红盾
热爱电脑,热爱生活
拥有电脑,拥有生命
让我们享受拥有电脑的时光