2016-06-12 12 views
0

Ich habe zwei Tabellen, deren Ergebnisse ich versuche zu kombinieren.Kombinieren Ergebnisse von 2 Tabellen mit Bedingung

Create table dbo.streetaddr1(HomeID INT,Address varchar(200)); 

INSERT INTO dbo.streetaddr1 VALUES(1, '656 ave.'); 
INSERT INTO dbo.streetaddr1 VALUES(2,'B-6 '); 
INSERT INTO dbo.streetaddr1 VALUES(3,'13 villa '); 




Create table dbo.streetaddr2(HomeID INT,Address varchar(200)); 
    INSERT INTO dbo.streetaddr2 VALUES(1, '656 ave.'); 
    INSERT INTO dbo.streetaddr2 VALUES(2,'B-6 6th avene'); 
    INSERT INTO dbo.streetaddr2 VALUES(4,'25 Main street'); 
    INSERT INTO dbo.streetaddr2 VALUES(5,'135 Elm St '); 

Wenn ein homeID in dbo.streetaddr1 vorhanden ist, wählen wir Anschrift, dass, obwohl es existiert auch in dbo.streetaddr2 wir es nicht holen. Wenn ein homeID nicht in dbo.streetaddr1 nicht vorhanden ist, dann holen wir die Adressen von dbo.streetaddr2

Erwartete Ausgabetabelle als unten:

Create table dbo.outputtable(HomeID INT,Address varchar(200)); 
    INSERT INTO dbo.outputtable VALUES(1, '656 ave.'); 
    INSERT INTO dbo.outputtable VALUES(2,'B-6 '); 
    INSERT INTO dbo.outputtable VALUES(3,'13 villa '); 
    INSERT INTO dbo.outputtable VALUES(4,'25 Main street'); 
    INSERT INTO dbo.outputtable VALUES(5,'135 Elm St '); 

Wie kann ich das tun?

dank Rs

Antwort

3

Versuchen Sie, diese

SELECT COALESCE(S1.HOMEID,S2.HOMEID) AS HOMEID, 
     COALESCE(S1.ADDRESS,S2.ADDRESS) AS ADDRESS 
FROM streetaddr1 S1 
     full join streetaddr2 s2 on s1.HomeId = s2.HomeId