我正试图从5000行获得1到20行。我尝试进行单个查询,然后插入到虚拟表中,之后我计算来自虚拟表的行 得到1至20行。它有效,但需要更多时间。所以,你对此有任何想法,请告诉我。
SELECT * FROM CRM_Contacts
答案 0 :(得分:2)
您可以在Sql Server 2012
OFFSET Fetch
SELECT *
FROM CRM_Contacts
ORDER BY Order_column
OFFSET 0 ROWS FETCH NEXT 20 ROWS ONLY
旧版本使用Row_Number
select * from
(
Select *, Row_Number()Over(Order by Order_column) as Rn
From Yourtable
) a
Where Rn between 1 and 20
如果总是排名前20,那么
SELECT top 20 *
FROM CRM_Contacts
ORDER BY Order_column