1

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'

基本的に、ヌルを心臓で埋め、DNとPN、および行2を行1にマージしたかったのでしょうか。

4

1 に答える 1

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 

これにより、各テーブルから最初のnull以外の値が選択されます。完全な答えを出すためにあなたのテーブルについての知識は限られていますが、組合はあなたが望んでいるように見えることをしないので、あなたはこのアプローチでより幸運になるでしょう。

于 2012-06-24T08:51:01.967 に答える