替换功能在用户定义功能中不起作用

时间:2019-05-16 16:47:03

标签: sql-server tsql

TSQL REPLACE函数可在查询分析器中使用,但在用户定义的函数中则不执行任何操作。

已检查收集:数据库和列上的SQL_Latin1_General_CP1_CI_AS。 从查询中选择字段,然后将其放在十六进制编辑器中,可以肯定的是,它是一堆ascii空间,x'20'。

作品:

declare  @HTMLText varchar(MAX) = '   Normal      Wi-Fi Enabled – Does the bus provide a Wi-Fi enabled connection?'

WHILE (@HTMLText like '%  %') 
   BEGIN
      set @HTMLText = REPLACE(@HTMLText, '  ', ' ')
   END

我希望所有双精度空格都从结果字符串中挤出。但这不是。

2 个答案:

答案 0 :(得分:0)

我猜你写的是双倍空格。以下代码有效

declare  @HTMLText varchar(MAX) = '   Normal      Wi-Fi Enabled – Does the bus provide a Wi-Fi enabled connection?'

   set @HTMLText = REPLACE(@HTMLText, ' ', '')
   SELECT @HTMLText

答案 1 :(得分:0)

我通过添加进行了一些清理          设置@HTMLText = REPLACE(@HTMLText,0x0D,'')          设置@HTMLText = REPLACE(@HTMLText,0x0A,'') 我的功能。

如果Alex没把我指向以二进制形式查看数据的方向,我将不会看到奇数数据。有人指出,它们是chr(13)和chr(10),我比较熟悉。 DOH。

感谢所有花时间的人。