2
A
回答
4
你需要使用類似的CTE(公共表表達式)和ROW_NUMBER
定義行numberings爲您的數據集 - 然後從編號CTE的行集你想:
;WITH PagingCte AS
(
SELECT
(list of columns),
RowNum = ROW_NUMBER() OVER (ORDER BY -some-column-of-yours-)
FROM
dbo.memberform
)
SELECT
(list of columns)
FROM
PagingCte
WHERE
RowNum BETWEEN 10 AND 29
在內部的ROW_NUMBER()
窗口函數中,您需要定義一個訂購,它定義了行的編號方式(按日期順序或ID或任何對您有意義的內容)。
如果沒有一個明確的訂貨,有前10可拿後無接下來的20 ...
0
WITH T AS
(
SELECT TOP 30 name,
row_number() OVER (ORDER BY id) AS RN
FROM memberform
ORDER BY id
)
SELECT
MAX(CASE WHEN RN <=10 THEN name END) AS Col1,
MAX(CASE WHEN RN > 10 THEN name END) AS Col2
FROM T
GROUP BY RN % 10
1
你的意思抵消條款?
OFFSET排除第一組記錄。 OFFSET只能與ORDER BY子句一起使用。 帶FETCH的OFFSET NEXT返回一個定義的記錄窗口。 帶FETCH的OFFSET NEXT非常適合構建分頁支持。
一般語法排除第一N條記錄是:
SELECT column-names
FROM table-name
ORDER BY column-names
OFFSET n ROWS
相關問題
- 1. 爲每個排名選擇前10位
- 2. 選擇前10條記錄,然後選擇下一條10
- 3. 選擇前20列
- 4. SQL - 僅選擇前10行?
- 5. 根據排名和先前選擇的行選擇行
- 6. 在MS Dynamics CRM中選擇排名前10位的記錄
- 7. 選擇排名前10位最長的帖子
- 8. 從日期中選擇10行向前和10個向後
- 9. 選擇前10行,然後選擇它們的5個隨機行
- 10. 選擇前10名,但11個結果
- 11. 使用JPA選擇前10名
- 12. 用INDEX/MATCH選擇前10名
- 13. Ul僅在開始時顯示前10個點,然後顯示下一個顯示10-20然後20-30
- 14. 試圖獲得排名前20的mySQL
- 15. HashTable排名前20的計數想法
- 16. 從c#中的數據視圖排序後選擇排名前N行
- 17. 僅排名前10位
- 18. 從數據庫中選擇排名前20的結果,查看更多
- 19. 「選擇前10名,然後加入表」,而不是
- 20. 如何對dataset.table [0]進行排序,然後得到前10名?
- 21. 排名前20的排名查詢 - 優化
- 22. NHibernate從結果中排名前20位
- 23. sql(oracle)選擇前10條記錄,然後是下10條,依此類推
- 24. 在查詢中選擇前20行不同的行
- 25. 排名前10位,但按字母順序排序,然後按排名。 SQL
- 26. Android Listview選擇前10項
- 27. 如何選擇字段後的前20個字符mysql
- 28. TSQL從表中選擇最後10行?
- 29. mysql:從DESC LIMIT選擇最後10行
- 30. 在每個組中過濾後選擇排名前N記錄
由於表沒有內在次序,通過什麼樣的列(S)你想訂購? –
我想在前10行後選擇下20行。是否有行增量到sql? – DiH
你是如何確定表格的前10行的? 'SELECT TOP 10 * FROM T' 返回10個任意行。也許你會在下一個查詢中獲得另外10個。你需要一個'ORDER BY' –