2
A
回答
2
關係表中沒有「前1條記錄」。除非您在查詢中指定一個記錄,否則記錄的順序不一樣。
10
您必須根據您決定的列進行排序來決定表格中的最高記錄。
這就是說,你可以在SQL Server中做到這一點:
UPDATE [YourTable]
SET [YourColumn] = SomeValue
WHERE [PrimaryKey] IN
(
SELECT TOP 1 [PrimaryKey]
FROM [YourTable]
ORDER BY [PrimaryKey] -- You need to decide what column you want to sort on
)
2
在SQLServer的,你可以在你的更新式,使用TOP關鍵字:
http://msdn.microsoft.com/en-us/library/ms177523.aspx
當TOP(N)子句與UPDATE一起使用,更新操作在隨機選擇的'n'行上執行。
0
在MS SQL中,除了現有的答案之外,還可以更新通過Common Table Expression (CTE)返回的TOP N行。如果需要,您也可以定義ORDER BY
。這
一個優點是,如果你的表沒有主鍵,它仍然工作:
WITH Top1Foo AS
(
SELECT TOP 1 *
FROM Foos
ORDER BY Name DESC
)
UPDATE Top1Foo
SET Name = 'zzz';
有一個
然而,其他用戶提到的告誡仍然 - 使用TOP
意味着有更多的記錄符合選擇標準,並且有更新任意記錄/記錄的風險。
相關問題
- 1. SQL查詢 - 更新同一表中的1條記錄中的多條記錄
- 2. 前10條記錄的sql查詢
- 3. 複雜的SQL加入與前1條記錄的子查詢
- 4. SQL - 更新大表(900萬條記錄)的查詢性能
- 5. Linq to sql更新記錄列表中的多條記錄
- 6. MYSQL表2中的表1更新記錄插入新記錄
- 7. 如何從查詢中獲得前1條記錄
- 8. SQL Server的更新查詢表中重複記錄
- 9. SQL Server +選擇所有不同記錄的前1條記錄
- 10. SQL查詢最新記錄
- 11. SQL Server查詢:將表1中的每條記錄與表2中的所有記錄進行配對
- 12. 如何更新sql server中的前100條記錄
- 13. 如何顯示更新查詢更新了多少條記錄?
- 14. 更新查詢以更新'其他記錄之間的記錄?
- 15. SQL查詢每個組只返回1條記錄ID
- 16. 用於查找表中新記錄百分比的SQL查詢
- 17. SQL更新以前的記錄
- 18. SQL Server查詢優化 - MultiJoins在2000萬條記錄中的表
- 19. SQL Query基於表中的2條記錄從1個表中獲取記錄
- 20. SQL查詢只返回一條記錄
- 21. SQL查詢邏輯多條記錄
- 22. SQLite通過SQL查詢中的條件查找以前的記錄
- 23. SQL服務器 - 一次更新表中的一條記錄
- 24. 如何更新表中的記錄與當前記錄的ID
- 25. SQL查詢從表中獲取記錄
- 26. 查詢在sql server表中插入一條記錄,如2013040900001
- 27. SQLite的更新多條記錄與不同的值由查詢
- 28. 每次更新值從1開始的SQL更新記錄
- 29. Oracle - Sql查詢獲取表中的最新記錄
- 30. SQL檢索sql查詢中的最後一條記錄
您使用的是什麼版本的SQL? – 2010-10-04 13:13:30
你能否留下一些細節?列信息?樣本數據? – Tim 2010-10-04 13:14:10
根據您使用的DBMS,即使數據沒有更改,也不能保證從表中選擇top 1總是返回相同的記錄。您可能需要找到比「前1名」更好的標準。 – 2010-10-04 13:14:53