Veröffentlicht 21. August 201213 j Ich möchte ein führendes Zeichen (,) entfernen, welches aber nur entfernt werden soll wenn es an 1. Position steht. Leider ist in MSSQL die Trimfunktion sehr spartanisch?! Beispiel: ,Max,Mustermann -> Max,Mustermann Maxi,Mustermann -> Maxi,Mustermann Was gibt es für Möglichkeiten?
21. August 201213 j Normalerweise hätte ich hier nur das Stichwort SUBSTRING gegeben. Da ich heute einen miesen Tag habe, muss es anderen ja aber nicht genauso ergehen: SELECT Name , CASE WHEN SUBSTRING(Name,1,1) = ',' THEN SUBSTRING(Name,2,LEN(Name)-1) ELSE Name END AS NameNeu FROM ( SELECT ',Max,Mustermann' AS Name ---> Max,Mustermann UNION SELECT 'Maxi,Mustermann' ---> Maxi,Mustermann ) names Bearbeitet 21. August 201213 j von mepp
21. August 201213 j mal wieder ein brett vor dem Kopf! :upps auf die Idee hät ich auch kommen könn. Vielen Dank!
21. August 201213 j Ne andere Moeglichkeit waere z.B. SELECT Name , right(name,Len(name)-patindex(',%',name)) AS NameNeu FROM ( SELECT ',Max,Mustermann' AS Name ---> Max,Mustermann UNION SELECT 'Maxi,Mustermann' ---> Maxi,Mustermann ) names Goos
21. August 201213 j Nur als Info, da ich beide Lösungen einmal ausprobiert habe. die 2. Lösung funktioniert leider nicht!
21. August 201213 j Ui, das wundert mich nun aber. Auf meinem System funktionierts. Waerst so nett, Dein "funktioniert nicht" etwas naeher zu erlaeutern? Goos
21. August 201213 j ich hätts vermutlich per CASE WHEN left(name,1) = ',' THEN right(name, len(name) -1) ELSE name END gemacht... Du kannst auch hingehn, dir ne CLR schreiben und dir Regular Expressions aus dem .Net Framework implementieren, ist was recht praktisches und managed Code ... das führt jetzt aber wohl zu weit. prinzipell sollte das aber eine recht lösbare Aufgabe sein Ps.: Mich würd auch interessieren was an Goos seiner Lösung falsch ist. Ich seh da auch nix ...
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.