能不能查出第10条到第20条记录呢?
这个在数据量大的时候意义很大
知道MySQL有个功能就是select * from table limit 5,10
就是查询出第5条到第10条记录的
SQLServer能实现么?
18 个解决方案
#1
select top 20 * from table
minus
select top 9 * from table
minus
select top 9 * from table
#2
minus 好象在SQL SERVE中不能用
#3
SELECT TOP 10 FROM (SELECT TOP 20 FROM TABLE ORDER BY KEY_ID) ORDER BY KEY_ID DESC.
就可以了。
就可以了。
#4
不好意思,少了个*
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.
#5
我现在也在寻求这个问题,但是请问,mysql中这样的语句效率如何?还有
select top 20 * from table
minus
select top 9 * from table
这样的语句呢?效率也如何?
select top 20 * from table
minus
select top 9 * from table
这样的语句呢?效率也如何?
#6
除了上述方法,还可用
set rowcount 需处理的行数
select 语句
set rowcount 0//关闭此功能
set rowcount 需处理的行数
select 语句
set rowcount 0//关闭此功能
#7
SELECT TOP 10 *
FROM TABLE
WHERE EXISTS (SELECT TOP 20 * FROM TABLE ORDER BY KEY_ID)
ORDER BY KEY_ID DESC
FROM TABLE
WHERE EXISTS (SELECT TOP 20 * FROM TABLE ORDER BY KEY_ID)
ORDER BY KEY_ID DESC
#8
key_id如果与表的自然顺序不一致怎么办?
#9
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的原因你试一下就明白了。
因为产生的记录是不一样的。(^-^ 可别忘了给我加分啊!)
先说一下为什么前面的解法行不通,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的原因你试一下就明白了。
因为产生的记录是不一样的。(^-^ 可别忘了给我加分啊!)
#10
谢谢nashan,谢谢大家。
ps:你的名字是“南山”之意么?我的是,我们还有缘嘛:)
ps:你的名字是“南山”之意么?我的是,我们还有缘嘛:)
#11
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'.
你的的确可以,但是不能带参数,可惜呀,呵呵
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'.
#12
to nanhill,
你的问题解决了吗?
to netease,
你的意见提得不错,我再考虑考虑,你有解决方法吗?
你的问题解决了吗?
to netease,
你的意见提得不错,我再考虑考虑,你有解决方法吗?
#13
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)
哈哈,原来这么简单,看清楚了。这回行了吧!
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)
#14
to netease,
嗨,刚上CSDN没几天,问你一个问题,你的图案为什么和我的不一样?怎么才能改我的颜色和图案呐?
嗨,刚上CSDN没几天,问你一个问题,你的图案为什么和我的不一样?怎么才能改我的颜色和图案呐?
#15
hoho,这个图案是你的生肖图案啊,根据的是你注册的时候填写的生日
#16
我的问题解决了,谢谢哦
#17
to nanhill,
不用客气,多联系。
不过那个生肖图案的确是不太像我的那个,算了,不跟它计较。也谢谢你了。
不用客气,多联系。
不过那个生肖图案的确是不太像我的那个,算了,不跟它计较。也谢谢你了。
#18
哈哈哈哈,长度可能差不多,宽度就差远了,是吧,哈哈哈哈
多联系,多联系,jiongli@263.net
多联系,多联系,jiongli@263.net
#1
select top 20 * from table
minus
select top 9 * from table
minus
select top 9 * from table
#2
minus 好象在SQL SERVE中不能用
#3
SELECT TOP 10 FROM (SELECT TOP 20 FROM TABLE ORDER BY KEY_ID) ORDER BY KEY_ID DESC.
就可以了。
就可以了。
#4
不好意思,少了个*
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.
#5
我现在也在寻求这个问题,但是请问,mysql中这样的语句效率如何?还有
select top 20 * from table
minus
select top 9 * from table
这样的语句呢?效率也如何?
select top 20 * from table
minus
select top 9 * from table
这样的语句呢?效率也如何?
#6
除了上述方法,还可用
set rowcount 需处理的行数
select 语句
set rowcount 0//关闭此功能
set rowcount 需处理的行数
select 语句
set rowcount 0//关闭此功能
#7
SELECT TOP 10 *
FROM TABLE
WHERE EXISTS (SELECT TOP 20 * FROM TABLE ORDER BY KEY_ID)
ORDER BY KEY_ID DESC
FROM TABLE
WHERE EXISTS (SELECT TOP 20 * FROM TABLE ORDER BY KEY_ID)
ORDER BY KEY_ID DESC
#8
key_id如果与表的自然顺序不一致怎么办?
#9
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的原因你试一下就明白了。
因为产生的记录是不一样的。(^-^ 可别忘了给我加分啊!)
先说一下为什么前面的解法行不通,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的原因你试一下就明白了。
因为产生的记录是不一样的。(^-^ 可别忘了给我加分啊!)
#10
谢谢nashan,谢谢大家。
ps:你的名字是“南山”之意么?我的是,我们还有缘嘛:)
ps:你的名字是“南山”之意么?我的是,我们还有缘嘛:)
#11
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'.
你的的确可以,但是不能带参数,可惜呀,呵呵
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'.
#12
to nanhill,
你的问题解决了吗?
to netease,
你的意见提得不错,我再考虑考虑,你有解决方法吗?
你的问题解决了吗?
to netease,
你的意见提得不错,我再考虑考虑,你有解决方法吗?
#13
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)
哈哈,原来这么简单,看清楚了。这回行了吧!
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)
#14
to netease,
嗨,刚上CSDN没几天,问你一个问题,你的图案为什么和我的不一样?怎么才能改我的颜色和图案呐?
嗨,刚上CSDN没几天,问你一个问题,你的图案为什么和我的不一样?怎么才能改我的颜色和图案呐?
#15
hoho,这个图案是你的生肖图案啊,根据的是你注册的时候填写的生日
#16
我的问题解决了,谢谢哦
#17
to nanhill,
不用客气,多联系。
不过那个生肖图案的确是不太像我的那个,算了,不跟它计较。也谢谢你了。
不用客气,多联系。
不过那个生肖图案的确是不太像我的那个,算了,不跟它计较。也谢谢你了。
#18
哈哈哈哈,长度可能差不多,宽度就差远了,是吧,哈哈哈哈
多联系,多联系,jiongli@263.net
多联系,多联系,jiongli@263.net