我的情况如下
我有一个项目列表,您需要删除一些不必要的东西
是一个例子
4-Starred Ladybug of Doom RP 02-EN022
我需要在连字符之前删除4个字母 - 在
之后删除5个字母你可能想知道为什么他不会倒退
UPDATE mytable
SET column = LEFT (column, LEN (column) -10)
还有其他部分在4之前有3个
但是中间的所有人都有-
我感谢帮助
我需要这个结果:
4-Starred Ladybug of Doom
答案 0 :(得分:0)
根据您的问题回答有几个问题。在你的例子中
4-Starred Ladybug of Doom RP 02-EN022
你说在-
和之前4之后删除5。在那种情况下,结果将是
4-Starred Ladybug of Doom R
为了符合您的结果,我可以这样做
DECLARE @something VARCHAR(50) ='4-Starred Ladybug of Doom RP 02-EN022'
SELECT LEFT(@something,LEN(@something) - (CHARINDEX('-',REVERSE(@something),0)+6))
但这只适用于-
之前要删除的6个字符。使用字符串时,空格被视为1个字符,因此在您的情况下,您需要删除4个字母和2个空格。
此代码将保留最后2个空格之前的所有内容。
DECLARE @something VARCHAR(50) ='4-Starred Ladybug of Doom RP 02-EN022'
SELECT LEFT(@something,LEN(@something) - CHARINDEX(' ',REVERSE(@something),CHARINDEX(' ',REVERSE(@something))+1))