Problem
Ein String (z.B. eine Materialnummer oder eine Artikelnummer) besteht aus alphanumerischen Zeichen (z.B. 00003j422a3) und hat führende Nullen, welche abgeschnitten werden sollen (Ergebnis: 3j422a3). Siehe auch „Führende Nullen bei numerischen Strings abschneiden“.
Ansatz
* Zuerst werden ALLE Nullen durch Leerzeichen ersetzt
* danach werden alle Leerzeichen auf der linken Seite mit LTRIM abgeschnitten
* anschließend werden alle Leerzeichen durch 0en ersetzt.
Prämissen / Vorraussetzungen
Es sind keine Leerzeichen in dem String
Lösung
SELECT REPLACE(LTRIM(REPLACE(artikelnummer, '0', ' ')), ' ', '0') FROM dbo.cube1
Alternativ ginge auch dies:
SUBSTRING(Artikelnummer, PATINDEX(‚%[^0]%‘, Artikelnummer),LEN(Artikelnummer) -(PATINDEX(‚%[^0]%‘, Artikelnummer)-1))
Hallo Jennifer!
Vielen Dank, dass Du Deinen Ansatz hier teilst.
Viele Grüße
Björn
Und was wenn die Artikelnummer eine Null enthält???
Das macht nichts. Lies den letzten Punkt unter Ansatz.
Nur Leerzeichen sind schlecht.