Plsql PL SQL使用基于另一列的值将列添加到查询
我有一个查询,返回的内容包括: 我需要一些东西来创建一个新列,如果级别1为null,它将返回1,如果级别2为null,它将返回2,如果级别3为null,它将返回3(最多可以有5个级别)Plsql PL SQL使用基于另一列的值将列添加到查询,plsql,Plsql,我有一个查询,返回的内容包括: 我需要一些东西来创建一个新列,如果级别1为null,它将返回1,如果级别2为null,它将返回2,如果级别3为null,它将返回3(最多可以有5个级别) 我不知道从何处开始,因此非常感谢您的帮助。您应该在决定新列值时使用Case select level1, level2, level3, level4, level5, (case when level1 is null then 1 when le
我不知道从何处开始,因此非常感谢您的帮助。您应该在决定新列值时使用Case
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;
请参阅下面的示例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;