我需要一些幫助來編寫查詢。SQL更新循環查詢
我有一種情況,我在數據庫表中有近400000條記錄。
我必須一次選擇4000000行,對於每1000條記錄,我必須用循環中的數值更新列。
但是,該數值必須每1000行增加1。
所以舉例說明數值爲1的前1000行。然後是數值爲2的第1000行。對所有記錄重複該過程都有一個值。
謝謝。
我需要一些幫助來編寫查詢。SQL更新循環查詢
我有一種情況,我在數據庫表中有近400000條記錄。
我必須一次選擇4000000行,對於每1000條記錄,我必須用循環中的數值更新列。
但是,該數值必須每1000行增加1。
所以舉例說明數值爲1的前1000行。然後是數值爲2的第1000行。對所有記錄重複該過程都有一個值。
謝謝。
這裏是在黑暗中爲sql服務器的全面鏡頭。不知道這是否是正確的DBMS或您的任何列。但不管你是否需要爲這類事情使用循環。
with MyCTE as
(
select *
, ROW_NUMBER() over (order by Something) as RowNum
from MyTable
)
update MyCTE
set SomeNumberColumn = (RowNum/1000) + 1
或者你可以;設置SomeNumberColumn = RowNum%1000 –
@RicardoC不完全工作。他們希望1到999之間的所有值都是1.考慮第55行。55%1000 = 55.不是OP正在尋找什麼。 :) –
你的回答對OP的狀態是嚴格的,是的。但我認爲這是不相關的,除非SELECT有意排序,否則它將是隨機的,因此我的建議。但是,是的,你是對的,不是說不然=) –
我正在嘗試使用row_number()函數。但是,每增加一行就會增加一個。 – lemondash
sql server或mysql? –
這裏是一個開始的好地方。 http://spaghettidba.com/2015/04/24/how-to-post-a-t-sql-question-on-a-public-forum/ –