如何从10到15获取记录我在网络中找到了一些代码
Select *
from Employee
LIMIT 10 to 15
但我在Limit
答案 0 :(得分:1)
您可以使用offset
和fetch 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