我有一个表的格式为:
A1 A2 A3 WK01 WK02 WK03
AA AB AB 3 52
AV C F 10 20 30
DD EF DF 10
AS FF DF 10
DD WW EE 现在要根据WK01,WK02,WK03 若他们都有数字则非空列为3,若其中有一个没有数值则为2.结果为:A1 A2 A3 WK01 WK02 WK03 WK04
AA AB AB 3 52 2
AV C F 10 20 30 3
DD EF DF 10 1
AS FF DF 10 1
DD WW EE 0这样如何在ORACLE 数据库中实现?
谢谢!
A1 A2 A3 WK01 WK02 WK03
AA AB AB 3 52
AV C F 10 20 30
DD EF DF 10
AS FF DF 10
DD WW EE 现在要根据WK01,WK02,WK03 若他们都有数字则非空列为3,若其中有一个没有数值则为2.结果为:A1 A2 A3 WK01 WK02 WK03 WK04
AA AB AB 3 52 2
AV C F 10 20 30 3
DD EF DF 10 1
AS FF DF 10 1
DD WW EE 0这样如何在ORACLE 数据库中实现?
谢谢!
from tb t;
nvl2(wk01, 1, 0) +
nvl2(wk02, 1, 0) +
nvl2(wk03, 1, 0) +
nvl2(wk04, 1, 0) +
nvl2(wk05, 1, 0) +
....
nvl2(wknn, 1, 0)
from table;如果列多的话,就用excel或者ultraedit来编辑
from dual
union
select 1 a ,null b,3 c
from dual
union
select 1 a ,2 b,null c
from dual
union
select 1 a ,null b,null c
from dual)select *
from a
order by a,b,c nulls last