私はクエリを書くためにいくつかの助けが必要です。SQLの更新ループのクエリ
私はデータベーステーブルに400000件近くのレコードがある状況があります。
一度に4000000行を選択する必要があります.1000レコードごとに、ループ内の数値で列を更新する必要があります。
ただし、その数値は1000行ごとに1ずつ増分する必要があります。
したがって、数値が1の最初の1000行。数値が2の2行目の1000行。すべてのレコードに対してこのプロセスを繰り返します。
ありがとうございます。
私はクエリを書くためにいくつかの助けが必要です。SQLの更新ループのクエリ
私はデータベーステーブルに400000件近くのレコードがある状況があります。
一度に4000000行を選択する必要があります.1000レコードごとに、ループ内の数値で列を更新する必要があります。
ただし、その数値は1000行ごとに1ずつ増分する必要があります。
したがって、数値が1の最初の1000行。数値が2の2行目の1000行。すべてのレコードに対してこのプロセスを繰り返します。
ありがとうございます。
ここでは、暗い場所でのSQL Serverの合計ショットを示します。これが正しいDBMSなのか、あなたの列が何であるかは分かりません。しかし、関係なく、あなたはこのようなことのためにループを使う必要はありません。
with MyCTE as
(
select *
, ROW_NUMBER() over (order by Something) as RowNum
from MyTable
)
update MyCTE
set SomeNumberColumn = (RowNum/1000) + 1
または可能です。 set SomeNumberColumn = RowNum%1000 –
@RicardoCこれはうまくいきません。彼らは1と999の間のすべての値を1にします。行55を考えてください。55%1000 = 55. OPが探しているものではありません。 :) –
あなたの答えはOPの状態、はいと厳密です。しかし、SELECTが意図的にソートされていない限り、それは無関係だと思っていました。さもなければランダムで、私の提案になります。しかし、はい、あなたは正しい、そうでないとは言わない=) –
私はrow_number()関数を使用しようとしていました。しかし、それはすべての行に対して1ずつ増加します。 – lemondash
SQL Serverまたはmysql? –
ここから始めましょう。 http://spaghettidba.com/2015/04/24/how-to-post-a-t-sql-question-on-a-public-forum/ –