[sql-server] Delete last N characters from field in a SQL Server database

I have table of over 4 million rows and accidentally in one column there is more data than needed.

For example instead of ABC there is ABC DEFG.

How can I remove that N symbols using TSQL? Please note that I want to delete this characters from database, NOT just select substring. Thank you

This question is related to sql-server

The answer is


I got the answer to my own question, ant this is:

select reverse(stuff(reverse('a,b,c,d,'), 1, N, ''))

Where N is the number of characters to remove. This avoids to write the complex column/string twice


You could do it using SUBSTRING() function:

UPDATE table SET column = SUBSTRING(column, 0, LEN(column) + 1 - N)

Removes the last N characters from every row in the column


This should do it, removing characters from the left by one or however many needed.

lEFT(columnX,LEN(columnX) - 1) AS NewColumnName