Announcement

Collapse
No announcement yet.

w0001 +1 = w0002 ???????

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

  • w0001 +1 = w0002 ???????

    Hallo,

    über jeder Hilfe würde ich mich freuen.

    In eine Spalte befindet sich folgende wert 'w0001'.
    Wie bekomme ich in eine SQl Abfrage einfach der nächste Wert als 'w0002'.

    Als Ergebnis muss der Wert 'w0002' sein und nicht etwa der 'w2'.
    Danke.

  • #2
    Welches DBMS?
    -String zerlegen,
    -Zahl auswerten
    -Wert erhöhen und mit Nullen auffüllen
    -wieder zusammenfügen

    Comment


    • #3
      Es handelt sich um den Microsoft SQL Server.
      Den String zerlegen habe ich schon geschafft aber wie wird der String mit null gefüllt ??

      Comment


      • #4
        Schau mal ob MSSQL
        LPAD()
        unterstützt

        Comment


        • #5
          Der MS SQL kennt LPAD nicht.

          Aber so geht es auch:

          select 'W' + RIGHT('0000' + convert(varchar(5), 2), 5)

          "2" einfach durch das Ergebnis des Hochrechnens ersetzen.
          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


          • #6
            Funktioniert aber mit dem hochrechnen muss auch '0000' reduziert werden.
            Muss man dann eine Store procedure schreiben müssen??

            Comment


            • #7
              Das geschieht schon durch RIGHT(.., 5), das nimmt nur die erst 5 Zeichen von Rechts aus gesehen.

              Beispiel:

              select 'W' + RIGHT('0000' + convert(varchar(5), 1234), 5)

              liefert "W01234"
              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


              • #8
                ich habe deinen SQL Statement probiert. In meine Tabelle sind die Werte
                w0001
                w0002

                wenn ich jetzt dein SQL Statment aufrufe:

                w01234
                w01234

                ich probierte auch folgende statment :

                select 'w' +Str(Max(str(Substring(value,2,5)) )+1)

                Ergebniss:

                w 3

                Wie kann ich zwischen den w und 3 mit NULL füllen ??

                Comment


                • #9
                  REPLICATE ('0', anzahl Zeichen)

                  Comment


                  • #10
                    oder auch ganz einfach (Ausgangswert 'W0009'): 'W' + right(10000 + cast(right('W0009', 4) as int) + 1, 4) -> 'W0010'

                    Gruß
                    Olaf

                    Comment


                    • #11
                      wenn ich jetzt dein SQL Statment aufrufe:

                      w01234
                      w01234
                      Jetzt sag bitte nicht, Du hast das Statement unverändert 1:1 übernommen?
                      Dann muss das natürlich herauskommen.

                      1234 ist ein fester Wert und war nur als Beispiel gedacht

                      Du musst 1234 aus
                      select 'W' + RIGHT('0000' + convert(varchar(5), 1234), 5)

                      natürlich durch Deinen Wert/Feld/was auch immer, ersetzen.
                      Siehe auch Beispiel vom anderen 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

                      Working...
                      X