k1fs Geschrieben 22. September 2011 Geschrieben 22. September 2011 Hallo, ich habe mit folgendem Problemchen zu kämpfen: Ich habe eine Tabelle "phonenumber" wo Telefonnummern gespeichert sind im Format: "0049 123456" Eingehende Calls sollen mit diesen Nummern verglichen werden. D.h. wenn Nummern wie z.b. 030 123456, 0176 123456 einkommen, dann muss ich diese ändern auf 004930 123456 bzw. 00491756 123456 ändern um den Vergleich durchzuführen. Aber wie kann ich diese Nummern im meinem Where Teil auf mein Format angleichen? Hier der bisherige pseudo code: select phonenumber from WhiteList where phonenumber = phonenumber_call OR phonenumber = * * an dieser Stelle müsste ich abfragen ob die nummer meinem Format entspricht und wenn nicht die erste Null abschneiden und durch mein 0049 erstetzen aber ich weiß eben nicht wie. Vielen Dank im Voraus! k1fs
Pixie Geschrieben 22. September 2011 Geschrieben 22. September 2011 Warum verrgleichst Du nicht einfach die Leerzeichen-bereinigten Strings und klemmst halt eine 0 davor?
k1fs Geschrieben 22. September 2011 Autor Geschrieben 22. September 2011 Eine Null reicht ja eben nicht. Bzw. In den Nummern sind auch keine Leerzeichen, die habe ich nur eingesetzt damit es besser ersichtlich ist. Es muss defenitiv eine 0049 vor jeder nummer stehen, es sei denn die Nummer ist schon im Format 00XX123456
Pixie Geschrieben 22. September 2011 Geschrieben 22. September 2011 Hmmm... mit CASE die einzelenen konstellationen abklappern (wie in eienr if-Anweisung)... bei LIKE '00%' nichts machen, sonst den String ab dem zweiten Zeichen verwenden und die 0049 davorsetzen... Soll das nur für den Vergleich so vorliegen oder auch als Änderung in die DB geschrieben werden?
k1fs Geschrieben 22. September 2011 Autor Geschrieben 22. September 2011 Nur als Vergleich mit der Tabelle, keine Überschreibung ect. An Case/IF habe ich auch schon gedacht, aber mein Kollege meinte ohne und wie gesagt im where Teil muss es stehen und das verwirrt mich total...
Schrotty Geschrieben 22. September 2011 Geschrieben 22. September 2011 Wären Reguläre ausdrücke eine Hilfe? WHERE regexp_replace(telefonnummer, '^0','0049') = ... Or telefonnummer = ...
Empfohlene Beiträge
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 erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden