Announcement

Collapse
No announcement yet.

Format in SQL ???

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

  • Format in SQL ???

    Hallo, ich möchte eine Zahl x vorne mit Nullen auffüllen bis diese x Stellen erreicht... Sprich mach aus "13" -> "00000013". Die Zahl wird in einem VarChar Feld gespeichert. Hat einer von euch eine Idee ?

  • #2
    Hallo,

    dazu gibt es den PAD-Befehl.
    Unter ORACLE zum Beispiel:

    SELECT LPAD(’Page 1’,15,’*.’) "LPAD example"
    FROM DUAL;

    LPAD example
    ---------------
    *.*.*.*.*Page 1

    Hier werden die angegebenen Zeichen (hier "*.") links (bei RPAD rechts) solange angefuegt, bis der String 15 Zeichen lang ist.
    Moeglichweise funktioniert das in deinem DBMS ein wenig anders, aber such mal nach PAD in deiner Doku. Weg kriegt man die Zeichen wieder mit dem TRIM-Befehl.

    Eine Zahl in einem Varchar-Feld zu speichern finde ich eigentlich nicht so toll, weil man dann erst wieder CASTEN muss, um mit ihr rechnen zu koennen. Schoener waere doch, die Zahl als Zahl zu speichern, und das Padden nur bei der Anzeige in der Anwendung durchzufuehren, oder?

    Gruss

    Stefa

    Comment


    • #3
      Hallo, danke für deine schnelle Antwort. Unter MS-SQL Server gibt es diese Funktion leider nicht... Ober kennst du den Befehl ? Gruß Sasch

      Comment


      • #4
        Hallo Sascha,

        das ist ein vall fuer REPLICATE!<BR>
        <BR>
        <B>SELECT REPLICATE('0',13-DATALENGTH(CAST(LFD_NR AS VARCHAR))) + CAST(LFD_NR AS VARCHAR)
        FROM TABELLE</B><BR>
        <BR>
        formatiert das INTEGER-Feld LFD_NR auf 13 Stellen mit fuehrenden Nullen.<BR>
        <BR>
        <BR>
        Gruss Thomas<BR&gt

        Comment


        • #5
          Hallo Thomas, genau das habe ich gesucht. Nun Arbeite ich schon 5 jahre mit dem SQL-Server und habe diesen Befehl immer noch nicht gekannt. Man lernt halt nie aus. Vielen Dank nochnmal. Gruß Sascha

          Comment

          Working...
          X