Vielen Dank an Alle die geantwortet haben.
Ich kann ja leider die Tabellenstruktur nicht veraendern, diese wird ja von einem Buchhaltungspaket erstellt. Jedesmal die Tabelle zu duplizieren und die Adresse auseinandernehmen und in verschiedenenen Feldern abspeichern nur damit ich sortieren kann, ist fuer meinen Begriff ein Overkill.
Ich glaube ich habe eine Loesung gefunden welche das erwuenschte Resultat produziert, und zwar mittels regexp und substring Funktionen in der Order Clause.
Code:
order by
if(Address regexp '^[0-9]+ ',substring(Address,locate(" ",Address)+1), substring_index(Address," ",2)),
if(Address regexp '^[0-9]+ ',abs(substring_index(Address," ",2)), abs(substring_index(Address," ",-1))),
Locality
Das erste if extrahiert den Strassennamen wenn die Adresse vorstehende Ziffern hat, oder das Postfach wenn dies nicht der Fall ist.
Das zweite if extrahiert die vorstehende Hausnummer wenn die Adresse vorstehende Ziffern hat, oder die nachstehende Postfachnummer wenn dies nicht der Fall ist.
Wenn die Adresse keine vorstehenden Ziffern enthaelt, ist das Resultat von abs(substring_index(Address," ",2)) welches in diesem Fall ein String ist, 0, was fuer den Sortbegriff richtig ist.
Was haelt Ihr davon?
Peter
Lesezeichen