Una forma de lidiar con comas de "recorte" como esa sería usar un CASE
declaración:
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
Esto se explica por sí mismo:el CASE
declaración considera tres situaciones -
- Cuando la cadena
str
tiene comas en ambos lados, - Cuando la cadena
str
comienza en una coma, pero no termina en uno, y - Cuando la cadena
str
termina en coma, pero no comienza en uno.
En el primer caso, se eliminan el primero y el último carácter; en el segundo caso, se elimina el carácter más a la izquierda; en el último caso, se elimina el carácter final.