-2

プロジェクトで機能を実現する必要があります:列を持つテーブルから

を選択し、(選択クエリから)取得したデータの2列を更新した後、同じテーブルにデータを挿入する必要があります...クエリが何をするか同じ機能を実現します。105

例 :(10 行) column1 のデータは 'zz','zz','zz','zz','zz','zz','zz','zz','zz','zz' です。
列 2 のデータは、'ClassA'、'ClassB'、'ClassC'、'ClassD'、'ClassE'、'ClassA'、'ClassB'、'ClassC'、'ClassD'、'ClassE' です。

INSERT INTO tableT (SELECT * FROM tableT (rows 列の既存のデータに column1='yy',column2=append '_tt' を更新))

クエリを実行した後、10 の古いレコードと 10 の新しいレコードの20 レコードがあります。
10 個の新しいレコード データ
はcolumn1 になります'ClassA_tt'、'ClassB_tt'、'ClassC_tt'、'ClassD_tt'、'ClassE_tt'、'ClassA_tt'、'ClassB_tt'、'ClassC_tt'、'ClassD_tt'、'ClassE_tt' です。

残りの3列のデータは同じになります

クエリのフレーミングについて教えてください

4

1 に答える 1

1

クエリのサイズと、データを更新する方法によって異なります。しかし、あなたの例では、使用できます

insert into table (column1,column2)
select decode(column2,'1','yy','2','zz',null) col1, col2 from table;

編集:

質問を変更した後、あなたが何をしたいのかまったくわかりません。これを説明してください:

列 2 のデータは、abc、bcd、dce、xyz などです。

パターンが分からないので。

編集2:

わかった。どうぞ:

INSERT INTO <table_name> (col1,col2,col3,col4,col5)
SELECT col1,col2,col3,col4,col5 
FROM (
    select  'yy' as col1 , (col2 || '_tt') as col2,col3,col4,col5, rownum r_num 
    from <table_name>
) where r_num <= 10;

必要な 10 行を指定しませんでした。これにより、内部選択クエリによって返された最初の 10 行が選択および変更されます。

于 2012-05-25T10:02:15.140 に答える