0

私は、特に次のようなものを返すクエリを持っています

ここに画像の説明を入力

レベル 1 が null の場合は 1、レベル 2 が null の場合は 2、レベル 3 が null の場合は 3 を返す新しい列を作成するものが必要です (最大 5 つのレベルが存在する可能性があります)。

どこから始めればいいのかわからないので、どんな助けでも大歓迎です。

4

1 に答える 1

0

新しい列の値を決定する場合は、Case を使用する必要があります。

必要なものを実現する次のサンプル pl/sql コードを参照してください。

  create table test_level( level1 varchar2(20), 
level2 varchar2(20),
level3 varchar2(20),
level4 varchar2(20),
level5 varchar2(20));

    insert into test_level values(null, 'X', 'X', 'X', 'X');
    insert into test_level values('X', null, 'X', 'X', 'X');
    insert into test_level values('X', 'X', null, 'X', 'X');
    insert into test_level values( 'X', 'X', 'X', null,'X');
    insert into test_level values('X', 'X', 'X', 'X', null);


select * from test_level;

以下のクエリを使用して、新しい列の値を取得します。

select level1, level2, level3, level4, level5,      
     (case 
         when level1 is  null then 1
         when level2 is  null then 2
         when level3 is  null then 3
         when level4 is  null then 4
         when level5 is  null then 5
      end) new_lvel
from test_level;
于 2012-10-19T14:54:11.603 に答える