我有超过400万行的表,并且意外地在一列中有超过需要的数据。
例如,ABC
取代ABC DEFG
而不是{{1}}。
如何使用TSQL删除N个符号?请注意,我想从数据库中删除这些字符,而不仅仅是选择子字符串。谢谢
答案 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"