私は50列を持つテーブルを持っている、など単一ステートメントの列の更新からSQL更新列
のはa,b,c,d
を言うことができます私は、B の新しい値から、およびCからBを更新したいので、 b=b+a,c=c+b ,d = c+ d,..
など Update [table] set b=b+a, c= c+b+a..
など のような更新をしたくないのですが、各列の更新では、巨大な計算式を書く必要があります。これは各列に対してより大きく複雑になるからです。
私が更新したいテーブルは約5000万行ありますので、複数の更新ステートメントを作成すると自殺率が高くなると思います。
どうすればよいですか? 変数の使用は良い考えだと思いますか?
ありがとう、ごめんなさい。
注:私の質問については申し訳ありません。 既存のテーブルには50の新しい列があります。 最初の新しい列aは、他の表との結合を使用して計算されます。 2番目の新しい列bは、aの新しい値に結果を追加して、他のテーブル(最初の更新と同じテーブル)との結合を使用して計算したい計算に計算されます。 samesロジックは、すべての50列の値を計算するために適用されます。
ご不明な点がありますか? –
テーブルを正規化する必要があります。これらの値は、これに関連する別のテーブルに属しています。そうすれば、更新と式が簡単になります。 –
それで、他の列の値を生成するためにどの列を追加するべきかをどのように知っていますか?列名から導出できる関係はありますか? column1、column2のようなもの?そうでなければ、動的なクエリや他のクエリを書いて、増分を続ける他の列のセットから各列を更新する方法はありますか? – Sam