2016-12-29 112 views
1

我想使用正則表達式從列中刪除特定字符。從列中刪除特定字符

舉個例子,我有這樣的:

declare @a nvarchar(50) = '(djfhsd-kjfhksd' 
select Replace(@a, Substring(@a, PatIndex('%[^0-9.-]%', @a), 1), '') 

但我想只刪除括號(),空格和破折號 -
我沒有對正則表達式的經驗,但我想將它們刪除一槍。

回答

3
declare @a nvarchar(50) = '(djfhsd-kjfhksd' 
Select @a =Replace(@a,RemChar,'') 
    From (Values ('('), 
       (')'), 
       ('-'), 
       (' ') 
      ) B (RemChar) 

Select @a 

返回

djfhsdkjfhksd 

對於一些直線前進。否則,你將需要一個UDF或交叉應用

Replace(Replace(Replace(Replace(YourCol,'(',''),')',''),'-',''),' ','') 
+0

嗨,感謝你,有沒有其他方式使用patindex? – carlosm

+0

哇..什麼是邏輯.. –

+0

@carlosm我會再看看 –