方法2:select top 20 identity(int,1,1) id,* into #temp1 from TableName; go set ROWCOUNT 10 go delete from #temp1; go select * from #temp1; go set ROWCOUNT 0;
我已经替你找到了浪客大虾的答案:(不要说我剽窃哦):hi,nanhill经过了半个小时的试验和测试我已以找出了答案先说一下为什么前面的解法行不通,minus不行;order by key_id(唯一索引字段)可能打乱表的自然顺序;set rowcount n 只能限制对前n条记录进行操作,也不起多大作用。 你说的第10条到第20条记录我理解为共11条记录,解法如下:select top 9 * into #temp from table select top 20-10+1 * from table where key_id not in (select key_id from #temp)为什么括号内不能换成select top 10 key_id from table的原因你试一下就明白了。
select top 10 * from (select * from (select top 20 * from TableName order by name) ss order by name desc) tt order by name order by name;
结账,多谢班主zhuzhichao(竹之草) 和 Amy2008(夏茵) 但是我是这样写的,在SQL2000中可以用,我还要到SQL70试试看行不行select * from( select top 10 * from (select top 20 * from t_esong order by esid) ss order by esid desc) as dd order by esid
go
set ROWCOUNT 10
go
delete from #temp1;
go
select * from #temp1;
go
set ROWCOUNT 0;
请查阅‘已解决’问题中‘SQL SERVER2000能实现查询从n条记录 到m条记录的功能吗?’
请查阅‘已解决’问题中‘SQL SERVER2000能实现查询从n条记录 到m条记录的功能吗?’
你说的第10条到第20条记录我理解为共11条记录,解法如下:select top 9 * into #temp from table
select top 20-10+1 * from table where key_id
not in (select key_id from #temp)为什么括号内不能换成select top 10 key_id from table的原因你试一下就明白了。
第二种方法要临时表,不想用Amy2008(夏茵) 不用临时表该怎么办呢?
(select * from
(select top 20 * from TableName order by name) ss order by name desc) tt
order by name order by name;
但是我是这样写的,在SQL2000中可以用,我还要到SQL70试试看行不行select * from(
select top 10 * from
(select top 20 * from t_esong order by esid) ss order by esid desc)
as dd order by esid