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
str
contiene virgole su entrambi i lati, - Quando la stringa
str
inizia con una virgola, ma non finisce con una e - Quando la stringa
str
finisce 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.