TSQL - 从结果中删除特殊字符

时间:2016-06-15 10:34:14

标签: sql-server tsql

我有一个选择比较表之间的数据,结果,返回文档编号,例如:

date           docnumber          magnumber          desc
Monday     DOC/X500/31321321    MAG/21321/X500   [RXC/X500/02132131][]

我想从列' desc'的结果中删除特殊字符[] []。尝试过的结果/修剪,但它没有给我一个我想要的结果。

3 个答案:

答案 0 :(得分:3)

使用REPLACE功能:

REPLACE(REPLACE(desc , ']' , ''),'[','')

test entry on ideone.com

答案 1 :(得分:1)

如果您还想删除空格,请使用LTRIM和RTRIM

LTRIM(RTRIM(REPLACE(REPLACE(desc,'[',''),']','')))

OR

REPLACE(REPLACE(desc,'[',''),']','')

答案 2 :(得分:1)

另一种解决方案是创建一个有用的功能,如下所示:

Create Function dbo.[RemoveUnWantedCharacters](@Input NVARCHAR(1000))
Returns NVARCHAR(1000)
AS
Begin
    Declare @KeepValues as varchar(50)
    Set @KeepValues = '%[^a-z0-9/]%'
    While PatIndex(@KeepValues, @Temp) > 0
        Set @Temp = Stuff(@Temp, PatIndex(@KeepValues, @Temp), 1, '')
    Return @Temp
End

像这里:https://stackoverflow.com/a/1008566/1068246

declare @test nvarchar(100) = '[RXC/X500/02132131][]';
select dbo.[RemoveNonAlphaCharacters](@test);

返回 - > RXC / X500 / 02132131

问候。