2016-03-24 7 views
1

Vom Persons Tabelle würde Ich mag die folgende Ausgabe erhalten:überprüfen Adresse voor 2 Eigenschaften und Anzeige in derselben Zeile

Number FirstName AddressAvenue AddressFloor 
---------------------------------------------- 
1  David  Long Avenue 5th Floor 
2  Bob  Short Avenue NULL 
3  Peter  Middle Avenue 1st Floor 

(Offenbar Bob seine Adresse nicht über eine Höhe der Wohnung enthalten).

Ich dachte, ich würde das Produkt erhalten, indem Sie die folgende Abfrage ausgeführt wird:

select 
    p.Number 
    p.FirstName 
    , case when (p.Street like '%Avenue%') then p.Street end as AddressAvenue 
    , case when (p.Street like '%Floor%') then p.Street end as AddressFloor 
from 
    #persons 
; 

Allerdings wird die Ausgabe wie folgt:

Number FirstName AddressAvenue AddressFloor 
---------------------------------------------- 
1  David  Long Avenue NULL 
2  Bob  Short Avenue NULL 
3  Peter  Middle Avenue NULL 
1  David  NULL   5th Floor 
3  Peter  NULL   1st Floor 

Frage Wie kann ich beide Address und Floor bekommen auf die gleiche Linie?

Jede Hilfe wird sehr geschätzt!

Antwort

1

diesen unartigen Jungen

CREATE TABLE #persons 
(
    Number INT 
    ,FirstName VARCHAR(10) 
    ,Street VARCHAR(50) 
) 

INSERT #persons 
VALUES 
(1, 'David', 'Long Avenue'), 
(2, 'Bob', 'Short Avenue'), 
(3, 'Peter', 'Middle Avenue'), 
(1, 'David', '5th Floor'), 
(3, 'Peter', '1st Floor') 

    --This is the code you really want, I just needed the rest to test it and make sure it worked 
SELECT DISTINCT 
z.Number 
,z.FirstName 
,(SELECT p.Street FROM #persons p where p.Street LIKE '%Avenue%' AND p.Number = z.Number) 
,(SELECT p.Street FROM #persons p where p.Street LIKE '%Floor%' AND p.Number = z.Number) 
FROM #persons z 

DROP TABLE #persons 

Ergebnisse in der folgenden Versuchen:

enter image description here

+0

Dies ist immer noch jede Zeile zweimal in meinem Fall der Rückkehr? – Pr0no

+1

Sind Sie sicher, dass Sie 'DISTINCT' nach Ihrem' SELECT' haben? Meins wiederholte sich auch, bis ich das hineinsetzte –

Verwandte Themen