Sql server TSQL-从结果中删除特殊字符
我有一个选择,比较表之间的数据,结果返回文档编号,例如:Sql server TSQL-从结果中删除特殊字符,sql-server,tsql,Sql Server,Tsql,我有一个选择,比较表之间的数据,结果返回文档编号,例如: date docnumber magnumber desc Monday DOC/X500/31321321 MAG/21321/X500 [RXC/X500/02132131][] 我想从“desc”列的结果中删除特殊字符[][]。尝试了结果/修剪,但没有给我想要的结果。使用替换功能: REPLACE(REPLACE(desc , ']' , ''),'[','
date docnumber magnumber desc
Monday DOC/X500/31321321 MAG/21321/X500 [RXC/X500/02132131][]
我想从“desc”列的结果中删除特殊字符[][]。尝试了结果/修剪,但没有给我想要的结果。使用
替换功能:
REPLACE(REPLACE(desc , ']' , ''),'[','')
?如果还想删除空白,请使用LTRIM和RTRIM
LTRIM(RTRIM(REPLACE(REPLACE(desc,'[',''),']','')))
或
另一个解决方案是创建一个有用的函数,如下所示:
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
就像这里:
返回-->RXC/X500/02132131
问候
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
declare @test nvarchar(100) = '[RXC/X500/02132131][]';
select dbo.[RemoveNonAlphaCharacters](@test);