Un modo per gestire le virgole di "rifilatura" del genere sarebbe utilizzare un CASE dichiarazione:
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
Questo è molto autoesplicativo:il CASE dichiarazione considera tre situazioni -
- Quando la stringa
strcontiene virgole su entrambi i lati, - Quando la stringa
strinizia con una virgola, ma non finisce con una e - Quando la stringa
strfinisce con una virgola, ma non inizia con una.
Nel primo caso vengono rimossi il primo e l'ultimo carattere; nel secondo caso viene rimosso il carattere più a sinistra; nell'ultimo caso, il carattere finale viene rimosso.