我想選擇前10行,然後選擇它們的5個隨機行。選擇前10行,然後選擇它們的5個隨機行
4
A
回答
6
必須在此代碼段中定義「前10個」,它是「某件事」。這是SQL Server 2000 +
select top 5
*
from
(
select top 10 * from <table>
order by something --got to have soemthing here to define "first 10"
) as a
order by
newid()
編輯:
爲什麼你需要ORDER BY派生表
-- large row, same result with and without index/PK
CREATE TABLE #foo (bar int /*PRIMARY KEY NONCLUSTERED (bar)*/, eejit char(8000))
--create rows with value 1-10 + some others
INSERT #foo (bar) VALUES (1)
INSERT #foo (bar) VALUES (10)
INSERT #foo (bar) VALUES (20)
INSERT #foo (bar) VALUES (2)
INSERT #foo (bar) VALUES (5)
INSERT #foo (bar) VALUES (45)
INSERT #foo (bar) VALUES (99)
INSERT #foo (bar) VALUES (3)
INSERT #foo (bar) VALUES (9)
INSERT #foo (bar) VALUES (7)
INSERT #foo (bar) VALUES (6)
INSERT #foo (bar) VALUES (4)
INSERT #foo (bar) VALUES (8)
--create logical fragmentation
DELETE #foo WHERE bar IN (1, 3, 5, 7, 9)
INSERT #foo (bar) VALUES (1)
INSERT #foo (bar) VALUES (3)
INSERT #foo (bar) VALUES (5)
INSERT #foo (bar) VALUES (7)
INSERT #foo (bar) VALUES (9)
-- run this a few times, you will see values > 10
-- "first 10" surely means values between 1 and 10?
select top 5
*
from
(
select top 10 * from #foo
) as a
order by
newid()
-- always <= 10 because of ORDER BY
select top 5
*
from
(
select top 10 * from #foo
order by bar --got to have soemthing here to define "first 10"
) as a
order by
newid()
1
2
select *
from
(select * from table order by id limit 10) as rows order by rand() limit 5
相關問題
- 1. MySQL的 - 選擇特定的行,然後才隨機他們
- 2. 選擇隨機行
- 3. 選擇前10條記錄,然後選擇下一條10
- 4. SQL - 僅選擇前10行?
- 5. 選擇之前未被選擇的隨機行嗎?
- 6. MySQL在查詢後選擇前5行
- 7. SQL選擇隨機行,但不會在下次重新選擇它們
- 8. 從隨機選擇中選擇前8行SQLSERVER
- 9. 用MySQL隨機選擇行
- 10. JPA:選擇隨機行
- 11. 選擇隨機行mysqli
- 12. 在mysql數據庫表中隨機選擇前5行
- 13. 選擇前50行,然後訂購
- 14. UITableView多選。自動選擇行隨機選擇行
- 15. SAS/SQL隨機選擇隨機行
- 16. MySQL選擇有序的行,然後隨機化結果
- 17. 選擇圖像,然後移動它們
- 18. 選擇隨機行並在同一查詢中更新它們?
- 19. 從日期中選擇10行向前和10個向後
- 20. MYSQL隨機選擇唯一行 - 不包括先前選擇的行
- 21. 選擇5個隨機元素
- 22. MySQL:選擇最後X行,然後選擇特定行
- 23. 使用order_by&limit CodeIgniter在10中選擇5個隨機結果?
- 24. 以隨機順序選擇行,然後將其顛倒
- 25. MySQL選擇前5行(多行)
- 26. 選擇隨機行每個組
- 27. Spark DataFrame - 選擇n個隨機行
- 28. 如何選擇N行然後命令它們?
- 29. 如何從SQL查詢選擇中選擇一個隨機行?
- 30. Datagridview行不可見,行選擇隨機
這很好。你有什麼更多的背景來解決你的問題嗎? – Oded 2010-12-06 11:20:56
所以你想要選擇前10行的5個隨機行? :) – Pabuc 2010-12-06 11:21:11
是的,這是正確的pabuc – Arrabi 2010-12-06 11:21:59