Sybase - 联盟后的重复行

时间:2012-06-24 08:38:20

标签: sql union sybase

我正在尝试复制从sybase数据库生成的表,我没有代码但可以访问数据库。

我几乎完美地复制了这个表,但因为我使用了一个联合体,我有重复的行,它们应该合并在一起:

select distinct id, dn, pn, null as sp
from dn
union
select id, 'DN', 'PN', sp
from sp
order by id

但我生产,例如:

 pn,    dn,         pn,          sp

'110','Liversage','Consultant', null

'110','DN       ','PN        ','Cardiac'

基本上我希望null用心脏填充,DN和PN和第二行合并到第一行?

1 个答案:

答案 0 :(得分:0)

为什么不这样做:

SELECT ID, COALESCE(A.dn, B.dn), COALESCE(A.pn, B.pn), COALESCE(A.sp,B.sp)
FROM dn A
    LEFT OUTER JOIN sp B
         ON A.id = B.id 

将从每个表中选择第一个非空值。我对你的表格的了解有限,无法给出完整的答案,但是你可能会对这种方法有更好的运气,因为工会不会做你想做的事情。