Jump to content

T SQL Filter soll keine Leerzeichen berücksichtigen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben

Hallo Leute,

 

Ich stehe vor einer kleinen Herausforderung,

ich habe eine Tabelle mit Kontakten.

Diese Kontakte haben eine Telefonnummer. 

Ich möchte auf diese Telefonnummer filtern. 

In der Tabelle hat die Telefonnummer jedoch an manchen stellen Leerzeichen, diese Leerzeichen kann ich nicht einfach entfernen, da ich diese an anderen Stellen benötige.

Der Parameter den ich als Filter nutzen möchte, hat jedoch keine Leerzeichen mehr.

Gibt es nun eine Möglichkeit dem Filter z.B. zu sagen das er die Leerzeichen in der Spalte nicht berücksichtigen soll? 

oder bleibt mir da nur die Möglichkeit die Leerzeichen aus der Telefonnummer zu entfernen?

 

Über tipps und tricks die mir zur Lösung helfen, würde ich mich sehr freuen :) 

MfG B.Denger

 

 

 

Geschrieben

Ich habe nun auch mehrere Character entfernen können, indem ich die Replace() aufrufe verschachtelt habe=

 

SELECT *

 

FROM Contact WHERE REPLACE(
                                             REPLACE(
                                                    REPLACE(TelefonnumerMitLeerzeichen,'-','') //entfernen des Minuszeichens
                                             ,'/','')   //Slash-Zeichens
                                      ,' ','') = TelefonnummerOhneLeerzeichen   //und Leerzeichens
 
Das ist zwar schwer lesbar aber bringt mir den perfekten nutzen.
Denn oftmals beinhalten Telefonnummern ja die verschiedensten Zeichen :)
Geschrieben

Das ist zwar schwer lesbar aber bringt mir den perfekten nutzen.

Denn oftmals beinhalten Telefonnummern ja die verschiedensten Zeichen :)

 

Du könntest natürlich auch eine Skalarwertfunktion erstellen. Der übergibst Du dann die Telefonnummer. In der Funktion kannst Du die verschiedenen Replace-Aktionen laufen lassen. http://msdn.microsoft.com/de-de/library/ms186755.aspx Die Skalarwertfunktion kannst Du in einem normalen SELECT DeineFunktion(deinWert) as NeuerWert benutzen. Dann ist der schwer lesbare Teil gekapselt. ;)

Geschrieben

Für die Performance  optimaler wäre es vermutlich, wenn man in einer anderen Spalte  die  Telefonnummer nochmal ohne Leer- und Sonderzeichen speichert.

Solche String-Operationen in der Where-Klausel sind u.U. Residual, was bei großen Tabellen die Performance-Problemen führt.

Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...