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?
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, '').
SQL Fiddle
Here's a more elegant / readable way:
SET @string = REPLACE(@string + '<END>', ',<END>', '')
if you can't be sure if last comma appear in string, use this:
SET @string = REPLACE(REPLACE(@string + '<END>', ',<END>', ''), '<END>', '')
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With