0

次のようなテーブルがあるとします。

col_1 |  col_2    
x     |   y    
null  |   y    
a     |   b

クエリで nullcol_1xifに変更することはできますか?y = y

私はSQLでこれをやろうとしています。CASE 句を使用する必要があると思いますが、これについてどうすればよいかわかりません。

4

3 に答える 3

2

テーブル自体との自己結合を適用し、一致するものが見つかった場合は行を更新する必要があります。

update tablename set
 cp.col_1 = pp.Col_1
 from tablename cp,
 tablename pp where
 cp.col_1 = null and
 cp.col_2 = pp.col_2
于 2012-08-29T12:18:10.523 に答える
2

これでうまくいくはずです

UPDATE MyTable x1
    set col_1 = 
    (SELECT col_1 
     FROM MyTable x2 
     WHERE x2.col_2 = x1.col_2 AND x2.col_1 IS NOT NULL
           AND rownum = 1)
    WHERE x1.col_1 IS NULL

SQLフィドルはこちら

于 2012-08-29T12:29:17.523 に答える
0

あなたはそれを行うことができますが、nullでない場合のx値は同じy値に対して同じでなければなりません

  1. カーソルを使用する
  2. 一時テーブル内のすべての個別の y 値を x 値とともに選択します
  3. 各行を繰り返し、列がnullの場合はx値を設定します

パフォーマンスは遅いですが、単に機能しています

于 2012-08-29T12:26:54.593 に答える