Eine Möglichkeit, mit solchen "trimmenden" Kommas umzugehen, wäre die Verwendung eines CASE
Aussage:
CASE
WHEN str LIKE ',%,' THEN SUBSTRING(str, 2, LEN(str)-2)
WHEN str LIKE ',%' THEN RIGHT(str, LEN(str)-1)
WHEN str LIKE '%,' THEN LEFT(str, LEN(str)-1)
ELSE str
END
Das ist ziemlich selbsterklärend:der CASE
-Anweisung berücksichtigt drei Situationen -
- Wenn die Zeichenkette
str
hat Kommas auf beiden Seiten, - Wenn die Zeichenkette
str
beginnt mit einem Komma, endet aber nicht mit einem, und - Wenn die Zeichenkette
str
endet mit einem Komma, beginnt aber nicht mit einem.
Im ersten Fall werden das erste und das letzte Zeichen entfernt; im zweiten Fall wird das Zeichen ganz links entfernt; im letzten Fall wird das abschließende Zeichen entfernt.