我有超过 400 万行的表,并且意外地在一列中的数据比需要的多。
例如,而ABC
不是ABC DEFG
.
如何使用 TSQL 删除这 N 个符号?请注意,我想从数据库中删除这些字符,而不仅仅是选择子字符串。谢谢
我有超过 400 万行的表,并且意外地在一列中的数据比需要的多。
例如,而ABC
不是ABC DEFG
.
如何使用 TSQL 删除这 N 个符号?请注意,我想从数据库中删除这些字符,而不仅仅是选择子字符串。谢谢
UPDATE mytable SET column=LEFT(column, LEN(column)-5)
从列中删除最后 5 个字符(mytable 中的每一行)
我得到了自己问题的答案,这是:
select reverse(stuff(reverse('a,b,c,d,'), 1, N, ''))
其中 N 是要删除的字符数。这避免了两次写入复杂的列/字符串
你可以使用SUBSTRING()
函数来做到这一点:
UPDATE table SET column = SUBSTRING(column, 0, LEN(column) + 1 - N)
删除列中每一行的最后 N 个字符
这应该做到这一点,从左边删除一个或多个需要的字符。
lEFT(columnX,LEN(columnX) - 1) AS NewColumnName
You can use function RIGHT [https://www.w3schools.com/sql/func_sqlserver_right.asp]
RIGHT( "string" , number_of_chars_from_right_to_left)
That should look like this:
Query: SELECT RIGHT('SQL Tutorial', 3) AS ExtractString;
Result: "ial"