有一表T_User 我要选第16-20条的数据 不是id哦 是选index 怎么选取呢 谢谢大家。
解决方案 »
- sql 2000转换到sql 2005 的问题???
- 如何写SQL语句查询表a丢失记录?
- 根据一个数据表中字段值来修改另一个数据表字段的问题
- 求助:关于SQLSERVER2000导入数据的问题
- 郁闷,ACCESS中 select top 1 查到的数据为2条
- PowerDesinger12做的表导成SQL2000数据库中的表 急
- 求一SQL语句,谢谢!
- SQL server导入数据提示:调用getrowset以获取dbschema_tables架构信息出错?
- 有没有好的办法解决查询连接超时的问题(timeout)?
- sqlserver 安装时提示无法安装服务,请确认您有足够的权限安装系统服务的问题
- 如何分隔完字符串后循环插入数据库
- 字符串连接问题
select top m * from tablename where id not in (select top n id from tablename)2.
select top m * into 临时表(或表变量) from tablename order by columnname -- 将top m笔插入
set rowcount n
select * from 表变量 order by columnname desc3.
select top n * from
(select top m * from tablename order by columnname) a
order by columnname desc
4.如果tablename里没有其他identity列,那么:
select identity(int) id0,* into #temp from tablename取n到m条的语句为:
select * from #temp where id0 >=n and id0 <= m如果你在执行select identity(int) id0,* into #temp from tablename这条语句的时候报错,那是因为你的DB中间的select into/bulkcopy属性没有打开要先执行:
exec sp_dboption 你的DB名字,'select into/bulkcopy',true
5.如果表里有identity属性,那么简单:
select * from tablename where identitycol between n and m
select px = identity(int,1,1) , * into tmp from tbselect * from tmp where px between 16 and 20
取第7到第12条记录的方法--注:必须要有惟一字段,这里假定col1是惟一字段。
declare @tb table (
col1 varchar(3),
col2 varchar(10)
)insert into @tb
select 'b1','aaa' union all
select 'm2','bbbb' union all
select 'y3','cccc' union all
select 'c4','dddd' union all
select 'r5','eeee' union all
select 'u6','ffff' union all
select 'h7','gggg' union all
select 'n8','hhhh' union all
select 'v9','iiii' union all
select 'y10','jjjj' union all
select 'c11','kkkk' union all
select 'a12','llll' union all
select 'z13','mmmm' union all
select 'p14','nnnn' union all
select 't15','oooo' union all
select 'm16','pppp'select *
from @tb
order by col1--7-12
--(12-7)+1为6,所以为: top 6 *
select top 6 *
from @tb
where col1 not in (select top 6 col1 from @tb)
/*
col1 col2
---- ----------
h7 gggg
n8 hhhh
v9 iiii
y10 jjjj
c11 kkkk
a12 llll(所影响的行数为 6 行)
*/