SELECT TOP 10 FROM (SELECT TOP 20 FROM TABLE ORDER BY KEY_ID) ORDER BY KEY_ID DESC. 就可以了。
不好意思,少了个*SELECT TOP 10 FROM (SELECT TOP 20 * FROM TABLE ORDER BY KEY_ID) ORDER BY KEY_ID DESC.
我现在也在寻求这个问题,但是请问,mysql中这样的语句效率如何?还有 select top 20 * from table minus select top 9 * from table 这样的语句呢?效率也如何?
除了上述方法,还可用 set rowcount 需处理的行数 select 语句 set rowcount 0//关闭此功能
SELECT TOP 10 * FROM TABLE WHERE EXISTS (SELECT TOP 20 * FROM TABLE ORDER BY KEY_ID) ORDER BY KEY_ID DESC
key_id如果与表的自然顺序不一致怎么办?
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的原因你试一下就明白了。 因为产生的记录是不一样的。(^-^ 可别忘了给我加分啊!)
谢谢nashan,谢谢大家。 ps:你的名字是“南山”之意么?我的是,我们还有缘嘛:)
to nashan(浪客剑心): 你的的确可以,但是不能带参数,可惜呀,呵呵 declare @pageno int set @pageno=9 select top @pageno * into #Table1 from OWOA_Users select top 11 * from OWOA_Users where UserID not in (select UserID from #Table1) 就会报错。 Incorrect syntax near '@pageno'.
to nanhill, 你的问题解决了吗? to netease, 你的意见提得不错,我再考虑考虑,你有解决方法吗?
to netease, 哈哈,原来这么简单,看清楚了。这回行了吧! declare @pageno int set @pageno=9 SET ROWCOUNT @pageno select * into #Table1 from OWOA_Users set ROWCOUNT 0 select top 11 * from OWOA_Users where UserID not in (select UserID from #Table1)
to netease, 嗨,刚上CSDN没几天,问你一个问题,你的图案为什么和我的不一样?怎么才能改我的颜色和图案呐?
hoho,这个图案是你的生肖图案啊,根据的是你注册的时候填写的生日
to nanhill, 不用客气,多联系。 不过那个生肖图案的确是不太像我的那个,算了,不跟它计较。也谢谢你了。
就可以了。
select top 20 * from table
minus
select top 9 * from table
这样的语句呢?效率也如何?
set rowcount 需处理的行数
select 语句
set rowcount 0//关闭此功能
FROM TABLE
WHERE EXISTS (SELECT TOP 20 * FROM TABLE ORDER BY KEY_ID)
ORDER BY KEY_ID DESC
你说的第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的原因你试一下就明白了。
因为产生的记录是不一样的。(^-^ 可别忘了给我加分啊!)
ps:你的名字是“南山”之意么?我的是,我们还有缘嘛:)
你的的确可以,但是不能带参数,可惜呀,呵呵
declare @pageno int
set @pageno=9
select top @pageno *
into #Table1
from OWOA_Users
select top 11 *
from OWOA_Users
where UserID not in (select UserID from #Table1)
就会报错。
Incorrect syntax near '@pageno'.
你的问题解决了吗?
to netease,
你的意见提得不错,我再考虑考虑,你有解决方法吗?
哈哈,原来这么简单,看清楚了。这回行了吧!
declare @pageno int
set @pageno=9
SET ROWCOUNT @pageno
select * into #Table1
from OWOA_Users
set ROWCOUNT 0
select top 11 * from OWOA_Users
where UserID not in
(select UserID from #Table1)
嗨,刚上CSDN没几天,问你一个问题,你的图案为什么和我的不一样?怎么才能改我的颜色和图案呐?
不用客气,多联系。
不过那个生肖图案的确是不太像我的那个,算了,不跟它计较。也谢谢你了。
多联系,多联系,[email protected]