I have a text memo field in SQL table that I need to remove the last character in the field if it’s a comma.
So, for example, if I have these rows, I need to remove the commas from rows 2 and 4.
INETSHORTD 1 94 2 85, 3 94, 92 4 89, 99, 32,
The output would be:
INETSHORTD 94 85 94, 92 89, 99, 32
Any ideas?
Advertisement
Answer
Using REVERSE
and STUFF
:
SELECT REVERSE( STUFF( REVERSE(LTRIM(RTRIM(INETSHORTD))), 1, CASE WHEN SUBSTRING((REVERSE(LTRIM(RTRIM(INETSHORTD)))), 1, 1) = ',' THEN 1 ELSE 0 END, '' ) ) FROM tbl
First, you want to TRIM
your data to get rid of leading and trailing spaces. Then REVERSE
it and check if the first character is ,
. If it is, remove it, otherwise do nothing. Then REVERSE
it back again. You can remove the first character by using STUFF(string, 1, 1, '')
.