如何從表中選擇第1行,第3行,第11行和第n行?SQL:如何從表中選擇第1行,第3行,第11行和第n行?
回答
如果沒有爲表中定義的一個主密鑰是基於整數數據類型 - 例如MySQL和SQLite都有auto_increment - 那麼你可以使用:
SELECT t.*
FROM TABLE t
WHERE t.id IN (1,3, 11)
...其中id
是auto_increment列。
有很少的細節去,然而MySQL和SQLite沒有分析查詢的支持,使得查詢相當複雜:
SELECT y.*
FROM (SELECT t.*,
(SELECT COUNT(*)
FROM TABLE x
WHERE x.col <= t.col) AS rank
FROM TABLE t) y
WHERE y.rank IN (1, 3, 11)
還沒有檢查實際的服務器,但我知道它背後的想法,並且在mysql或sqlite中沒有選擇單獨的行支持。 這個答案有兩個答案+替代選項。 – 2010-08-16 12:32:58
@Downvoter:很高興知道爲什麼 – 2010-08-16 17:15:06
首先,您永遠不應該依賴數據庫中行的順序。行沒有自然順序。但是,您可以添加一個屬性(例如,帶有自動增量的無符號整數),用於指示行的順序。確保無論何時編輯表格,該字段都會相應更新。
現在可以選擇第一,第三和第十一行
SELECT * FROM table t
WHERE t.order IN (1, 3, 11)
ORDER BY t.order ASC;
對於MySQL
SET @rows_count = NULL;
select col_list,rn from
(
select col_list, @rows_count := IFNULL(@rows_count, 0) + 1 as rn
from table_name
order by col_list
limit 11) top_n
WHERE rn IN (1,3,11)
如此花哨和複雜:P – 2010-08-16 12:31:15
SELECT * FROM(SELECT ROW_NUMBER()OVER(由EMPNO順序)RNO ,e。*來自scott.emp e)其中rno在(1,3,11)
- 1. 用SQL選擇第n行
- 2. VIM如何選擇/複製第n行從第x行到第y行
- 3. R:第(n + 1)行第n行第m + 1列與第(n + 1)行第m列之間的日期差
- 4. 從數據框中選擇第i行和第i + 1行
- 5. 如何選擇第3,第4,第7,第8和第11李?
- 6. 如何從awk中的第(n + 3)行減去第n個?
- 7. 如何在SQL Server中選擇第三行或第四行
- 8. 80行數據,第一行選擇1-20行,第二行選擇21-30行
- 9. 如何在CockroachDB中選擇第n行?
- 10. 比較SQL Server中的第一行和第n行
- 11. 刪除從第N行到第N行vim的行
- 12. 按行數選擇第一個第n行
- 13. sql join - 僅從第二個表中選擇第一行
- 14. 爲Access中的每個人選擇第一行,第二行和第三行
- 15. SQL只選擇第一行
- 16. SQL選擇第x行
- 17. SQL {} setCharset AUTO_INCREMENT =第1' 行1
- 18. jQuery選擇每行中的第3,第4和第5個TD用ID
- 19. 第1行SQL snytax錯誤
- 20. 的NodeJS createReadStream從第n行
- 21. 如何從Cassandra中取第n行?
- 22. 在Excel中選擇ActiveCell行的第1到第10列
- 23. 選擇第一行從多個表
- 24. SQL加入第一,第二和第三行加入表
- 25. 數據表第二行第一行
- 26. 只從第n行檢索sql數據
- 27. 檢查並選擇第2行如果第1行不存在mysql
- 28. ActiveRecord - 獲得第N行到第N + 10行的查詢結果
- 29. 如何只選擇表中的每一個第n行?
- 30. 如何從第一行減去第二行和生成的MySQL
基於什麼排序? – 2010-08-16 11:36:21
一些其他信息會有幫助。表中是否有正確接種的主鍵?如果是這樣,你只需要使用。 – shookdiesel 2010-08-16 11:38:38
你需要它在sqllite和mysql中工作嗎?如果不是哪一個? – 2010-08-16 11:45:49