2016-10-31 4 views
0

Ingres DB, Eigenschaftsdaten wie untenWählen Sie Adresse leere Spalten

addr1 
addr2 
addr3 
addr4 
postcode 

Einige Adresse zu ignorieren sind kurz und haben so keine Werte in addr3 oder addr4. Z.B.

addr1 : 14 Random Street 
addr2 : City 
addr3: 
addr4: 
postcode : LT1 5GH 

Die Postleitzahl ist immer ausgefüllt.

Wie kann ich die Adresselemente in zusammenhängenden Feldern mit SQL auswählen?

würde So ist der Ausgang Ich möchte wie unten

14 Random Street, City, LT1 5GH 
Flat 5, 15 Random Street, District, London, E35 5FG 
67 Whatever Crescent, Lovely Street, Eastwich, LH6 &GH 
+0

Dreifach selbst links beitreten? – jarlh

+0

Nicht ganz sicher, was Sie meinen, können Sie ein Beispiel geben? –

Antwort

2

du einen case Ausdruck verwenden versuchen.

case when addr1<> '' and addr1 is not null then addr1 +',' else '' end + 
case when addr2<> '' and addr2 is not null then addr2 +',' else '' end + 
case when addr3<> '' and addr3 is not null then addr3 +',' else '' end + 
case when addr4<> '' and addr4 is not null then addr4 +',' else '' end + 
zip 

Verwenden concat oder eine ähnliche Funktion, wenn nicht der + Verkettungsoperator in Ingress ist.

1

SELECT CONCAT (CASE WHEN ISNULL (Add1, '') <> '' THEN Add1 + '' END CASE WHEN ISNULL (ADD2 '') <> '' THEN Add2 + '' END CASE WENN ISNULL (Add3, '') <> '' DANN Add3 + ',' ENDE, CASE WENN ISNULL (Add4, '') <> '' DANN Add4 + ',' END, CASE WENN ISNULL (Postleitzahl, '') <> '' DANN Postleitzahl ENDE)