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. 表的SQL Server更新前1記錄
- 3. 前10條記錄的sql查詢
- 4. 複雜的SQL加入與前1條記錄的子查詢
- 5. SQL - 更新大表(900萬條記錄)的查詢性能
- 6. 在單個查詢中更新多條記錄MS SQL
- 7. linq查詢更新多條記錄
- 8. Linq to sql更新記錄列表中的多條記錄
- 9. SQL更新兩條記錄
- 10. MYSQL表2中的表1更新記錄插入新記錄
- 11. 如何從查詢中獲得前1條記錄
- 12. SQL Server的更新查詢表中重複記錄
- 13. SQL查詢來查找重複的記錄和更新表
- 14. 從多個更新查詢中返回一條「記錄更新」
- 15. SQL查詢查找以前的記錄
- 16. SQL Server +選擇所有不同記錄的前1條記錄
- 17. SQL查詢最新記錄
- 18. SQL Server查詢:將表1中的每條記錄與表2中的所有記錄進行配對
- 19. 查詢只返回1條記錄
- 20. 爲每條記錄插入時檢查表中的SQL查詢
- 21. 如何更新sql server中的前100條記錄
- 22. SQL查詢條件更新
- 23. 如何顯示更新查詢更新了多少條記錄?
- 24. 更新列表中的SQL數據庫中的每條記錄
- 25. 更新查詢以更新'其他記錄之間的記錄?
- 26. SQL查詢每個組只返回1條記錄ID
- 27. SQL查詢1分鐘可獲得75,000條記錄
- 28. 用於查找表中新記錄百分比的SQL查詢
- 29. SQL更新以前的記錄
- 30. 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