从列中删除特定字符

时间:2016-12-29 17:01:23

标签: sql-server

我想使用regexp从列中删除特定字符。

举个例子,我有这个:

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

但我想删除括号(),空格和短划线 -
我没有regexp的经验,但我想一次性删除它们。

1 个答案:

答案 0 :(得分:3)

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

Select @a

返回

djfhsdkjfhksd

对于直接的事情。否则,您将需要UDF或Cross Apply

Replace(Replace(Replace(Replace(YourCol,'(',''),')',''),'-',''),' ','')