2010-12-13 8 views
3

私はこれらの線に沿ってクエリを記述しようとしています:更新ステートメントで同じテーブルを2回使用することはできますか?

UPDATE Table i2 
SET value = 0 
WHERE EXISTS (SELECT 1 FROM Table i1 WHERE i2.ID = i1.ID+1) 

問題は、私は取得していますということです「付近に正しくない構文 『I2』を。」私はそれが更新されているテーブルにニックネームを与えるのが好きではないので、これを推測していますが、その場合、どのように参照する必要がありますか?

答えて

6

更新プログラムは、テーブル上にあるだけでなく、From節で参照されているテーブルのエイリアスを直接使用することもできます。

UPDATE i2 
SET value = 0 
FROM Table i2 
WHERE EXISTS (SELECT 1 FROM Table i1 WHERE i2.ID = i1.ID+1) 
0

「SET」節内の「値」はSQL.Furtherのキーワードである、あなたのロジックは最初の行を除くすべての「値」Sをクリアしているようだ、それはあなたの目標ですか?

+0

これは実際のクエリを単純化したものです。 「値」は列でした。また、「各セットの最初のものを除いてすべて」となる余分な制約もありました。 – Margaret

関連する問題