【问题标题】:TSQL - Remove special characters from a resultTSQL - 从结果中删除特殊字符
【发布时间】:2016-06-15 10:34:14
【问题描述】:

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

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

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

【问题讨论】:

    标签: sql-server tsql


    【解决方案1】:

    使用REPLACE函数:

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

    https://msdn.microsoft.com/en-us/en-en/library/ms186862.aspx?

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        【解决方案3】:

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

        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

        问候。

        【讨论】:

          猜你喜欢
          • 2011-04-11
          • 2016-01-23
          • 2016-10-26
          • 2014-08-17
          • 1970-01-01
          相关资源
          最近更新 更多