当前位置: 代码迷 >> Oracle开发 >> 两表查询结果列合并,该如何解决
  详细解决方案

两表查询结果列合并,该如何解决

热度:39   发布时间:2016-04-24 06:34:02.0
两表查询结果列合并
表一:one

数据:

人员    房间1    房间2      房间3
   A           1            1
   B                         1
   C                                         1

表二:two

数据:

人员    房间4     房间5
   A           1
   B           1            1
   D           1            2
   E            2           3

要求实现以下数据查询结果

人员     房间1      房间2           房间3             房间4             房间5
A              1              1                                           1
B                              1                                           1                     1
C                                                   1
D                                                                           1                     2 
E                                                                            2                     3 
------解决思路----------------------
select NVL(A.人员,B.人员) 人员,A.房间1,A.房间2,A.房间3 ,B.房间4,B.房间5
from 表1 A full join 表2 B
on A.人员=B.人员

------解决思路----------------------
引用:
select NVL(A.人员,B.人员) 人员,A.房间1,A.房间2,A.房间3 ,B.房间4,B.房间5
from 表1 A full join 表2 B
on A.人员=B.人员

1楼正解,用full jion关联两表,nvl()函数来将人员列合并,附:
NVL2(expr1,expr2,expr3) 
功能:如果参数表达式expr1值为NULL,则NVL2()函数返回参数表达式expr3的值;如果参数表达式expr1值不为NULL,则NVL2()函数返回参数表达式expr2的值。
NVL( string1, replace_with)
功能:如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值,如果两个参数都为NULL ,则返回NULL。
  相关解决方案