Uma maneira de lidar com "aparar" vírgulas como essa seria usar um
CASE declaração: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
Isso é muito auto-explicativo:o
CASE declaração considera três situações - - Quando a string
strtem vírgulas em ambos os lados, - Quando a string
strcomeça em uma vírgula, mas não termina em uma, e - Quando a string
strtermina em uma vírgula, mas não começa em uma.
No primeiro caso, o primeiro e o último caracteres são removidos; no segundo caso, o caractere mais à esquerda é removido; no último caso, o caractere final é removido.
Demonstração no sqlfiddle.