我有一张emp
如下表
empnum deptno salary
----- ------ ------
1 null null
null 2 null
null null null
null null 3
5 null 4
null 6 1
我希望结果集应该像
result
------
1
2
0
3
5
4
6
1
如果有3 nulls
它应该显示0
,
如果有only one null
它应该以插入它们的相同顺序显示其他两个值,
如果有“2个空值”那么它应该在结果集中显示一个值。
我试过了
select rs from
((select decode(empno||deptno||sal,null,0,substr(empno||deptno||sal,1,1)as rs,rowid as ri from emp)
union
((select decode(empno||deptno||sal,null,0,substr(empno||deptno||sal,2,1)as rs,rowid as ri from emp)
minus
(select decode(empno||deptno||sal,null,0,substr(empno||deptno||sal,1,1)as rs,rowid as ri from emp)))
where rs is not null
order by ri,rs;
上面的查询给出的结果为
rs
--
1
2
0
3
4
5
1
6
任何人都可以帮助我获得如上所述的确切结果集。
提前致谢..