如何从sql中记录10到15

时间:2017-06-25 16:12:38

标签: sql sql-server-2012

如何从10到15获取记录我在网络中找到了一些代码

Select * 
from Employee 
LIMIT 10 to 15 

但我在Limit

收到错误消息

2 个答案:

答案 0 :(得分:1)

您可以使用offsetfetch next

select e.*
from Employee e
order by ??
offset 9
fetch next 6 rows only;

请注意,fetch可从SQL Server 2012开始提供。

通常,您使用order by执行此操作。 ??用于排序的列/表达式。在没有order by的情况下获取偏移量是没有意义的,因为除非排序是显式的,否则结果集将处于任意顺序。

在早期(支持)版本中,我建议使用row_number()

select e.*
from (select e.*, row_number() over (order by ??) as seqnum
      from Employee e
     ) e
where seqnum between 10 and 15;

答案 1 :(得分:0)

或者,您可以使用" ROW_NUMBER()"。请参阅此堆栈溢出中的以下代码示例:Row Offset in SQL Server

SELECT col1, col2 
 FROM (
 SELECT col1, col2, ROW_NUMBER() OVER (ORDER BY ID) AS RowNum
 FROM MyTable
 ) AS MyDerivedTable
WHERE MyDerivedTable.RowNum BETWEEN @startRow AND @endRow