Announcement

Collapse
No announcement yet.

Wert an eine bestehenede Zahl anfügen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Wert an eine bestehenede Zahl anfügen

    Hallo Zusammen,

    ich möchte (muss) in einer Spalte in der die Telefonnummern mit +49 7805 2323 angelegt sind, diese in +49 07805 2323 umwandeln. Soll heißen, dass immer eine 0 an der 5.Stelle von links anfügen werden soll.
    Kann mir da jemand helfen?

    Danke im Voraus!

    sporty1972

  • #2
    Welches DBMS?

    Comment


    • #3
      Originally posted by sporty1972 View Post
      diese in +49 07805 2323 umwandeln
      Das wäre nicht wirklich DIN-konform. Siehe z.B. hier.

      Um die Umwandlung unbhängig davon zu erledigen, mußt Du auf String-Funktionen zurückgreifen, die aber je nach eingesetztem DBMS unterschiedlich sind.
      Dirk

      Comment


      • #4
        Originally posted by Markus Kinzler View Post
        Welches DBMS?
        MS SQL Server2005

        Comment


        • #5
          [highlight="sql"]
          select left( <feld>, 4) || '0' || RIGHT( <feld>, len( <Feld> - 4)) as ...
          [/highlight]

          Comment


          • #6
            Setzt aber voraus, das nur 2stellige int. Vorwahlen vorhanden sind.
            Grenada hat z.B. +1809 und Antarktis Casey +67212, also mehrer Stellen; das würde schief gehen.

            Olaf
            Olaf Helper

            <Blog> <Xing>
            * cogito ergo sum * errare humanum est * quote erat demonstrandum *
            Wenn ich denke, ist das ein Fehler und das beweise ich täglich

            Comment


            • #7
              Originally posted by Markus Kinzler View Post
              [highlight="sql"]
              select left( <feld>, 4) || '0' || RIGHT( <feld>, len( <Feld> - 4)) as ...
              [/highlight]
              Zuerst einmal danke für die schnelle Antwort! Leider kapiere ich dies nicht ganz. Kannst Du bitte etwas ausfühlicher beschreiben?!

              Meinst Du mit <Feld> die Spalte und muss der ganze Befehlnicht ein update rein?

              Bin Anfänger, daher bitte Gedult mit mir haben!

              Danke nochmals im Voraus!

              Comment


              • #8
                <Feld> ist ein Platzhalter für den Feldnamen.
                das ganze kannst du natürlich auch im update durchführen
                [highlight="sql"]
                update <Tabelle> set <Feld> = LEFT( <feld>, 4) || '0' || RIGHT( <feld>, len( <Feld> - 4));
                [/highlight]

                Comment


                • #9
                  So habe ich es in den Query Analyser eingegeben:
                  UPDATE stotest.adressen SET telefon = LEFT( telefon, 4) || '0' || RIGHT( telefon, len( telefon - 4));

                  Ich bekomme allerdings einer Fehlermeldung:

                  Falsche Syntax in der Nähe von '|'.

                  Comment


                  • #10
                    Ich vergass das MS seinen eigen Standard hat:
                    [highlight="sql"]
                    UPDATE <Tabelle> SET <Feld> = LEFT( <feld>, 4) + '0' + RIGHT( <feld>, len( <Feld>) - 4);
                    [/highlight]

                    Comment


                    • #11
                      Nun kommt wieder eine Fehlermeldung:

                      Fehler beim Konvertieren des varchar-Wertes '+49 831 5818-01' in den int-Datentyp.

                      Grüße

                      sporty1972

                      Comment


                      • #12
                        Originally posted by sporty1972 View Post
                        Nun kommt wieder eine Fehlermeldung:

                        Fehler beim Konvertieren des varchar-Wertes '+49 831 5818-01' in den int-Datentyp.

                        Grüße

                        sporty1972
                        Wohl weil '+49 831 5818-01' kein INT ist, oder?

                        Comment


                        • #13
                          Ich habe fast den Verdacht, dass das Feld, das geändert wird (und laut Fehlermeldung wohl ein int-Feld ist), nicht das ursprüngliche Feld mit der Telefonnummer ist. Das muss ein Zeichenstring-Feld sein, sonst hätte das weder ein '+' vorne oder Leerstellen dazwischen. Und vom Statement kommt das '+' jedenfalls nicht, das hängt ja nur eine '0' in den bestehenden Text rein.

                          bye,
                          Helmut

                          Comment


                          • #14
                            Originally posted by hwoess View Post
                            Ich habe fast den Verdacht, dass das Feld, das geändert wird (und laut Fehlermeldung wohl ein int-Feld ist), nicht das ursprüngliche Feld mit der Telefonnummer ist. Das muss ein Zeichenstring-Feld sein, sonst hätte das weder ein '+' vorne oder Leerstellen dazwischen. Und vom Statement kommt das '+' jedenfalls nicht, das hängt ja nur eine '0' in den bestehenden Text rein.

                            bye,
                            Helmut
                            Bei der betroffenen Spalte handelt es sich um eine VARCHAR25 Datentyp. Das Feld ist auch das ursprüngliche Feld, indem die Telefonnummern stehen!

                            Comment


                            • #15
                              Hallo Zusammen und Danke Schön!

                              Habe es hinbekommen und zwar mit folgendem Befehl:

                              UPDATE stotest.adressen
                              SET telefon = REPLACE(telefon, '+49', '+49 0')

                              Vielen Dank nochmals für die Hilfe!

                              Grüße Sporty1972

                              Comment

                              Working...
                              X