SQL LIKE Befehl?

... komplette Frage anzeigen

2 Antworten

Deine Lösung selektiert alle Straßen, in der eine Leerstelle enthalten ist. Dazu zählen auch die Leerstellen hinter dem Straßennamen. Der zweite LIKE soll vermutlich letztere nicht berücksichtigen. In meiner Datenbank funktioniert das aber nicht.

Bei meinen Straßenamen (ca 20000 Beispiele) habe ich teilweise bis zu 2 Leerstellen außer den hinteren. Die Abfrage scheitert daran, dass man den LIKE nicht positionieren kann.

Nach einem Leerzeichen kann man nicht exklusiv abfragen, da zwei Leerzeichen auch die Bedingung erfüllen.

Vielleicht funktioniert es, wenn das Feld vom Typ varchar ist. Da sind hinten keine Leerstellen. Bei mir ist der Typ char.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von wotan38
14.06.2016, 12:20

Danke für die Auszeichnung.

Wenn für das Feld STRASSE keine speziellen Bedingungen vorgegeben sind und mit ganz normalen Straßennamen (mit Haus-Nrn wie z.B. 1a oder auch 1 a) in einem Feld fester Länge von meinetwegen 30 Zeichen, dann ist die Aufgabe in der hier diskutierten Art allgemein nicht lösbar, da sie im Falle von nachfolgenden Leerstellen jede Lösung mit LIKE verhagelt. Da mein Datenbanksystem mindestens 12 Jahre alt ist, könnte es in neueren Systemen zusätzliche Möglichkeiten geben, die ich nicht kenne. 

0

Hallo!

Eigentlich ist es doch dasselbe, wie die zweite Zeile.

Der Strassenname soll nicht (NOT LIKE) aus drei Wörtern ('% % %') bestehen.

Also ist dies bei deiner Vorgabe (mindestens 2 Wörter) unnötig.

Gruß

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von JamesOffice
11.06.2016, 22:05

Hallo,
Ja, also das Problem ist, dass mindestens 2 heißt 2 oder mehr und ich habe Straßennamen mit 3 Wörter, die werden auch mit der Lösung von dem Prof angezeigt, deswegen checke ich das gar nicht! kann sein das seine Lösung falsch, also die 3.te Zeile?
Vielen Dank im Voraus!

0