当前位置:主页>销售管理软件> 列表

sql语句问题~~~

进销存管理软件版1楼: 请问各位大虾怎么显示一个表中中间的一部分记录,比如第20-30行
还有最后一部分记录,比如最后20行
前提是我的表中ID列是非线性的,又不想另外增加一个新列,应该怎么写语句啊???
谢谢各位先~~~~~~

2楼: 用RowID的方式,定位中间部分的记录。
RowID是非用户创建字段,不过是可以被使用的。 如进销存表格样本

3楼: 不能用sql语句写吗??

4楼: //Oracle
SELECT *
FROM (SELECT RowNum, A.* FROM Table A WHERE RowNum<=30) T
WHERE T.RowNum>=20;

5楼: sql server里没的,在MYSQL里好象有个limit可以用

6楼: 想了一下,在SQL SERVER下我的方法:

declare @record int;
declare @sqlstring varchar(255);
select @record=count(goodsid) from goods

select @sqlstring=''select * from goods where goodsid not in (''
+'' ''+ ''select top''
+'' ''+str(@record-20)
+'' ''+''goodsid''
+'' ''+ ''from goods''


+'' ''+''order by goodsid)''

select (@sqlstring)

进销存管理软件版7楼: SELECT TOP 20 * FROM TABLE1 ORDER BY ITEM_ID DESC倒過來取前20條。
select top 10 * from (select top 30 * from talbe1 order by item_id desc) as b
取前30條作為B﹐再從B中取前10條就行了

8楼: to:6楼
好像不行啊,显示的是@sqlstring这个变量的内容,没有执行它里面的语句

这个我不是太懂,请问要怎么样执行呢??

9楼: 这个不好办

10楼: 明白了,加个asc就行了,谢谢各位大虾啦~~~~~~~~

11楼: 多人接受答案了。