select top 20 * from table order by xxx desc
解决方案 »
- 求 SQL实现 定时任务
- sql创建数据库的时候,数据库路径怎么确定??
- 求解一存储过程!分不够再加!UP有分!急...在线等.....
- 安了SQL2005,可以再安VS2010吗?
- 请问是使用“视图”还是“存储过程”?
- 如何将查询得到的数据存入指定的数据库的数据表中
- ██████高分求T-SQL语法手册下载██████
- S-Q-L SERVER ----SIKOU SERVER?
- 这条sql怎么写?
- 如何用sql语句的三种完全不同的方法找到一个已知table里会做某几道题菜的厨师有哪些?
- 自己的写的存储过程定义的临时表数据如何返回给程序recordset?
- SQL语句高分求救!在线等待!急!!谢了!:(
declare @sql varchar(300)
set @cn=(select count(*) from table1)
if @cn>20
set @cn=@cn-20
set @sql='select top '+convert(char(30),@cn)+' * into temp from table1'
exec(@sql)
select * from table1 where id not in (select id from temp)
drop table temp
alter table #temp add idx int identity(1,1)
select * from #temp where idx>@@rowcount-20
FROM TABLE A, TABLE B
WHERE A.ID>= B.ID
GROUP BY A.ID,A.NAME
HAVING COUNT(*)>20 AND COUNT(*)<=40
ORDER BY 1嘻,这样写,在数据量大的时候会有点慢,不过可以满足你的要求。
HAVING后面的语句就是你要取得行数,你可任意取任何行数,例如
你要取出第48到60条的纪录,你的HAVING语句可以这样写
HAVIGN COUNT(*)>48 AND COUNT(*)<=60
FROM TABLE A, TABLE B
WHERE A.ID>= B.ID
GROUP BY A.ID,A.NAME
HAVING COUNT(*)>20 AND COUNT(*)<=40
ORDER BY 1嘻,这样写,在数据量大的时候会有点慢,不过可以满足你的要求。
HAVING后面的语句就是你要取得行数,你可任意取任何行数,例如
你要取出第48到60条的纪录,你的HAVING语句可以这样写
HAVIGN COUNT(*)>48 AND COUNT(*)<=60
wanghu(不懂就是不懂)的答案正确
(select (select count(*) from a1 where id <= a.id) AS ROW, * FROM a1 as a ) as b
where b.row >20 and b.row <= 40
有逻辑顺序,就是你显示所看到的顺序
SELECT TOP 20 * FROM #TABLE ORDER BY ORDERCOL DESC
我的意思是怎么查找后20条记录
比如开始为1-20,后20条为21-40,再后20条为41-60,比如做BBS记录的翻页
j9988(j9988) 的还可以,就是不知道对不对
USE pubs
GO
DECLARE authors_cursor scroll CURSOR FOR
SELECT au_id,au_lname,au_fname FROM authors
OPEN authors_cursor
declare @a int,@b varchar(20),@c varchar(20),@d varchar(20)
set @a=1
while @a<21
begin
set @a=@a+1
FETCH next from authors_cursor into @b,@c,@d
select @b,@c,@d
end
while...
CLOSE authors_cursor
DEALLOCATE authors_cursor
select id,name from #tmptable where colnum between startcol and endcol
这样可以查任意某段的记录!!
select @TotalRowNum=count(*) from t1
SET @startpos=@TotalRowNum-20
DECLARE @t1_cursor CURSOR
SELECT t1.field1,t1.field2 FROM t1
OPEN t1_cursor
SET @currentpos=0WHILE @currentpos<=@TotalRowNum
BEFGIN
@currentpos=@currentpos+1
if @currentpos>@startpos
SELECT t1.field1,t1.field2 FROM t1
FETCH NEXT FROM t1_cursor
END
CLOSE t1_cursor
select top 20 * from tablename where id not in (select top 20 * from table)