从SQL Server数据库中的字段中删除最后N个字符

时间:2012-05-06 12:26:51

标签: sql-server

我有超过400万行的表,并且意外地在一列中有超过需要的数据。

例如,ABC取代ABC DEFG而不是{{1}}。

如何使用TSQL删除N个符号?请注意,我想从数据库中删除这些字符,而不仅仅是选择子字符串。谢谢

5 个答案:

答案 0 :(得分:56)

UPDATE mytable SET column=LEFT(column, LEN(column)-5)

从列中删除最后5个字符(mytable中的每一行)

答案 1 :(得分:11)

我得到了自己问题的答案,蚂蚁是:

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

其中N是要删除的字符数。这样可以避免两次编写复杂的列/字符串

答案 2 :(得分:1)

您可以使用SUBSTRING()函数执行此操作:

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

从列

中的每一行中删除最后N个字符

答案 3 :(得分:0)

这应该这样做,从左边删除一个或多个需要的字符。

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

答案 4 :(得分:0)

您可以使用 RIGHT 函数 [https://www.w3schools.com/sql/func_sqlserver_right.asp]

RIGHT( "string" , number_of_chars_from_right_to_left)

应该是这样的:

Query: SELECT RIGHT('SQL Tutorial', 3) AS ExtractString;
Result: "ial"