2014-03-31 55 views
-1
一個特殊字符替換後

我的情況是這樣的之前和SQL

我有,你需要刪除一些不必要的東西

項目的列表是一個例子

4-Starred Ladybug of Doom RP 02-EN022 

我需要在連字符之前刪除4個字母 - 以及之後的5個

您可能想知道爲什麼他不只是倒退

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

有跡象表明,之前有3個其他地區,經過4 -

但是,所有的中間

我感謝幫助有-

我需要這樣的結果:

4-Starred Ladybug of Doom 
+1

我們如何知道要刪除哪些字符?除了'-'字符之外,您想要刪除的文本是否存在某種模式?例如,我們如何知道'Doom'應該停留,但是'RP'不應該? – Adam

+0

在你的SQL手冊中查找函數部分。找到適當的使用。 ......但是,如果你不知道你在找什麼,那就坐下來閱讀一下。如果您知道我在想什麼,那將是非常有益的。 –

回答

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))