如何在所有地方替换这个特殊字符

时间:2015-02-26 05:51:24

标签: sql sql-server sql-server-2008

我尝试了以下方法,但结果不符合要求(我的意思是在运行替换查询后得到相同的结果)。如何更换所有特殊字符的地方? 这是查询。

select 
REPLACE(description,'‚'COLLATE Latin1_General_BIN, N'‚') 
from Zstandars_25Feb2015 where Colname = 56

结果:

  

....形式+ =和=用于其中的案例,和    都是非负的..........

3 个答案:

答案 0 :(得分:0)

你的描述字段的类型是什么? 如果它的varchar,你不应该遇到任何问题。我在我的测试表中运行了你的查询,我没有得到这样的错误,它可能是你的整理,删除整理并再次尝试或将整理更改为其他东西。

答案 1 :(得分:0)

-- Removes special characters from a string value.
-- All characters except 0-9, a-z and A-Z are removed and
-- the remaining characters are returned.
-- Author: Christian d'Heureuse, www.source-code.biz
create function dbo.RemoveSpecialChars (@s varchar(256)) returns varchar(256)
   with schemabinding
begin
   if @s is null
      return null
   declare @s2 varchar(256)
   set @s2 = ''
   declare @l int
   set @l = len(@s)
   declare @p int
   set @p = 1
   while @p <= @l begin
      declare @c int
      set @c = ascii(substring(@s, @p, 1))
      if @c between 48 and 57 or @c between 65 and 90 or @c between 97 and 122
         set @s2 = @s2 + char(@c)
      set @p = @p + 1
      end
   if len(@s2) = 0
      return null
   return @s2
   end

答案 2 :(得分:0)

通过保留N,我可以获取数据..

选择 REPLACE(描述,N&#39;,&#39;收集Latin1_General_BIN,N&#39;,&#39;) 来自Zstandars_25Feb2015,其中Colname = 56

感谢大家的帮助。