Skip to content
Advertisement

SQL : remove last comma in string

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, '').

SQL Fiddle

User contributions licensed under: CC BY-SA
6 People found this is helpful
Advertisement