Create Table TAB(
A Varchar2(10),
A1 Varchar2(10),
B Varchar2(10),
B1 Varchar2(10),
C Varchar2(10),
C1 Varchar2(10)
);
Insert Into tab (A,A1,B,B1,C,C1) Values ('aaa','aaa1',Null,Null,Null,Null);
Insert Into tab (A,A1,B,B1,C,C1) Values (Null,Null,'bbb','bbb1',Null,Null);
Insert Into tab (A,A1,B,B1,C,C1) Values (Null,Null,Null,Null,'ccc','ccc1');Select * From tab;
查询结果3行记录,如下所示:A          A1         B          B1         C          C1
---------- ---------- ---------- ---------- ---------- ----------
aaa        aaa1                                        
                      bbb        bbb1                  
                                            ccc        ccc1
________________________________________________________________________
想得到如下显示,查询SQl该如何写呢?
A          A1         B          B1         C          C1
---------- ---------- ---------- ---------- ---------- ----------
aaa        aaa1       bbb        bbb1       ccc        ccc1需要只显示一行,如何实现?望各位前辈指导!~多谢!~

解决方案 »

  1.   

    select *
    from (select a,a1 from tab  where a is not null) a
         ,(select b,b1 from tab  where b is not null) b
         ,(select c,c1 from tab  where c is not null) c
         ;
      

  2.   

    SQL> select max(A),max(A1),max(B),max(B1),max(C),max(C1) from tab;MAX(A)     MAX(A1)    MAX(B)     MAX(B1)    MAX(C)     MAX(C1)
    ---------- ---------- ---------- ---------- ---------- ----------
    aaa        aaa1       bbb        bbb1       ccc        ccc1