2016-03-30 9 views
-2

selectステートメントで複数のレコードを更新する方法が不思議です。selectステートメントで複数のレコードを更新する

私はこの方法をしたい:ここ

Update table set new_col = (select col1 from tab1, tab2 where tab1.id =tab2.neid) 

は100のレコードの周りにサブクエリリターンを選択して、私は私のnew_colを更新したいものを100のレコードの。

このタスクを実行する方法はありますか?

私はupdate selectを使ってみましたが、成功しませんでした。

サンプル:

表は3列の周りに10個のレコードが含まれています。 インスタンスの場合、もう1つの列を既存のテーブルに追加したいと思います。

今私は4つの列を持っています。新しい追加された列は、別の表からこれらの10個のレコードの値を取得することになっています。

どうすればいいですか?

ありがとうございます。

+2

質問を編集し、サンプルデータと希望する結果を提供してください。あなたの質問はあまりにもあいまいです。 –

+0

@initykあなたの質問は更新されましたが、あなたに何をしようとしているかを示す追加情報はありませんでした。質問を更新して、テーブルのサンプルデータと、更新後に見たい出力を提供してください。 ([ここに質問の例があります](http://stackoverflow.com/questions/31852230/calculation-in-two-column-of-different-row-in-sql)これだけです。) – Boneist

答えて

0

Oracleでは、相関サブクエリを使用してこれを行うことができます。あなたは、更新するために、どの行かを決定するためにいくつかの列を必要とする:

Update table t 
    set new_col = (select col1 
        from tab1 join 
         tab2 
         on tab1.id = tab2.neid 
        where tab?.?? = t.?? 
       ) 
    where exists (select 1 
        from tab1 join 
         tab2 
         on tab1.id = tab2.neid 
        where tab?.?? = t.?? 
       ); 

あなたの質問は、副問合せの各行と一致する外側のテーブル内の行を識別するために、どのように指定されていません。したがって、?および??

関連する問題