从目标列中删除空格和所有符号

时间:2015-03-04 07:01:09

标签: sql-server

我需要删除所有空格和所有符号,但目标表中的字母和数字除外(例如dbo.Products),SQL Server中的目标列(来自示例products_fullTextSearch)。

1 个答案:

答案 0 :(得分:0)

创建用户定义的scalar function

然后使用该函数更新表

<强>功能:

CREATE FUNCTION Udf_remove_symbol_space(@chr VARCHAR(max))
returns VARCHAR(max)
AS
  BEGIN
      DECLARE @cntr   INT=1,
              @temp   VARCHAR(5),
              @result VARCHAR(max)=''
      WHILE @cntr <= Len(@chr)
        BEGIN
            SET @temp = Substring(@chr, @cntr, 1)

            IF @temp LIKE '[a-z]'
                OR @temp LIKE '[0-9]'
              BEGIN
                  SET @result += @temp
              END
            SET @cntr+=1
        END
      RETURN @result
  END

<强>演示

CREATE TABLE #test
  (chr VARCHAR(max))

INSERT #test
VALUES('1234567890abcdefghijk~lmonpqrstuvwxyzA BCDEFGHIJKLMONPQRSTUVWXYZ.-#,/\&%();:+@_*?|=')

UPDATE #test
SET    chr = dbo.Chrtst1(chr) 

select * from #test --1234567890abcdefghijklmonpqrstuvwxyzABCDEFGHIJKLMONPQRSTUVWXYZ