MSSQL: Select direkt per Replace verändern?

DrMueller

Erfahrenes Mitglied
Hallo Leute,

evtl. eine etwas krude Frage:
Ich habe ein Feld mit Faxnummern. Diese können vom Benutzer frei eingegeben werden, daher können dort x Leerzeichen zwischen den Nummern sein. Ist es möglich, dass ich bereits beim Select diese Leerzeichen wegmache, dass er also einen Wert ohne Leerzeichen sucht, aber auch solche mit, findet?

So was in der Art:

Code:
Select* from faxcsid where  replace(right(csid, 7), ' ', '') = '7732424'

Nun, dass er eben auch z.b. 773 24 24 findet.

Oder muss ich alle Datensätzr auslesen und per Schleife diese dann im VB replacen?
Das würde natürlich das Programm ziemlich verlangsamen.

Bei Google habe ich nichts in der Richtung gefunden, wobei ich da auch nicht sicher bin, ob ich nach dem richtigen gesucht habe.


Wie immer vielen Dank im Voraus für alle Antworten

Müller Matthisa
 
Bei MS Access, MySQL ud ORacle - ja.
MS SQL kenn ich nicht. Probiers aus.....

Wobei ich nicht verstehe was du mit right(csid, 7) Bewirkst. Wenns viele Leerzeichen hat, dann schneidest du da irgendwo durch die Leerzeichen durch. Versuchs doch stattdessen mit LIKE (Ich weiss nicht ob bei MS SQL ein * oder ein % als Platzhalter verwendet wird)
SQL:
WHERE  REPLACE(csid, ' ', '') LIKE '%7732424'
 
Zuletzt bearbeitet von einem Moderator:
aha, anscheinend geht sql nich von innen nach aussen. Ich dachte so was wie: Replace alle Leerzeichen, dann von diesem Resultat die 7.
Mit like klappts dann:

Code:
Select* from faxcsid where  replace(csid, ' ', '') like  '%7732424'
Vielen Dank, wieder was gelernt
 
Doch, es geht von Innen nach Aussen
SQL:
replace(right(csid, 7), ' ', '')
Macht zeurst ein right() und dann ein replace .

Wennd ann müsstest du das so schreiben - eben, von Innen nach Aussen
SQL:
RIGHT(REPLACE(csid, ' ', ''), 7)
 
Zuletzt bearbeitet von einem Moderator:

Neue Beiträge

Zurück