私は、特に次のようなものを返すクエリを持っています
レベル 1 が null の場合は 1、レベル 2 が null の場合は 2、レベル 3 が null の場合は 3 を返す新しい列を作成するものが必要です (最大 5 つのレベルが存在する可能性があります)。
どこから始めればいいのかわからないので、どんな助けでも大歓迎です。
私は、特に次のようなものを返すクエリを持っています
レベル 1 が null の場合は 1、レベル 2 が null の場合は 2、レベル 3 が null の場合は 3 を返す新しい列を作成するものが必要です (最大 5 つのレベルが存在する可能性があります)。
どこから始めればいいのかわからないので、どんな助けでも大歓迎です。
新しい列の値を決定する場合は、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;