Announcement

Collapse
No announcement yet.

führende Nullen entfernen

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

  • führende Nullen entfernen

    hallo an alle,

    ich habe das problem das Datensätze nullen am Anfang enthalten können.

    zB. 0005544
    oder
    0055443

    Man sieht schön daran das es hier mit substr nicht getan ist. Jedoch wie kann man in Oracle die führenden Nullen entfernen?

    in MSSql mache ich das so


    CAST(substring(SUBSTRING (SA_IDENTNR_VG,9,8 ) , patindex('%[^0]%',SUBSTRING (SA_IDENTNR_VG,9,8 ) ), 8) as varchar(8))

    kann wer helfen?

  • #2
    Du kannst
    [highlight=SQL]
    select REGEXP_REPLACE('0000123', '^0+', 'x') from dual -- Ersatzzeichen x
    [/highlight]
    bzw.
    [highlight=SQL]
    select REGEXP_REPLACE('0000123', '^0+', '') from dual
    [/highlight]

    verwenden
    Falls das Ursprungsfeld numerisch ist, wäre auch to_char(to_number('myNumberWithLeadingZeroes'), 'myformatMask') möglich.

    p.s.: Der Ausdruck im ersten Beispiel entfernt alle Nullen, kann also im Ergebnis leer sein!
    Gruß, defo

    Comment


    • #3
      Je nach konkretem Anwendungszweck gibt es auch viele andere mögliche Varianten:

      LTRIM (RTRIM) entfernt beliebige Zeichen von links (rechts):
      Code:
      SELECT LTRIM('0000123', '0') srt FROM dual;
      Implizite Konvertierung:
      Code:
      SELECT 0 +'0000123' num FROM dual;
      Explizite Konvertierung:
      Code:
      SELECT to_number('0000123') num FROM dual;
      Wenn es unbedingt ein STRING werden muss (ggf. mit anderer Formatierung):
      Code:
      SELECT to_char(to_number('0000123')) str FROM dual;

      Comment

      Working...
      X