Ett sätt att hantera "trimma" kommatecken på det sättet skulle vara att använda ett CASE
uttalande:
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
Detta är mycket självförklarande:CASE
uttalandet tar hänsyn till tre situationer -
- När strängen
str
har kommatecken på båda sidor, - När strängen
str
börjar med komma, men slutar inte med ett, och - När strängen
str
slutar med komma, men börjar inte med ett.
I det första fallet tas de första och sista tecknen bort; i det andra fallet tas tecknet längst till vänster bort; i det sista fallet tas det efterföljande tecknet bort.