Sql server 2008 删除SQL中的特殊字符

Sql server 2008 删除SQL中的特殊字符,sql-server-2008,Sql Server 2008,例如:我有字符串“a&b”或“a&b”。如何删除特殊字符并将这些字符串连接到“ab”中 请任何人告诉我 I have to remove the special characters from the selected string. 到目前为止,是最好的选择,如果必须以内联方式执行,则可以在递归CTE中替换,并将其用作基表 SELECT @id= (UPPER(SUBSTRING(@a,1,2)))+(UPPER(SUBSTRING((SELECT table.column2 F

例如:我有字符串“a&b”或“a&b”。如何删除特殊字符并将这些字符串连接到“ab”中

请任何人告诉我

      I have to remove the special characters from the selected string.
到目前为止,是最好的选择,如果必须以内联方式执行,则可以在递归CTE中替换,并将其用作基表

SELECT @id= (UPPER(SUBSTRING(@a,1,2)))+(UPPER(SUBSTRING((SELECT table.column2 FROM tablename WHERE tablename.column1 = @b),1,2))) + RIGHT('000000000' + CAST(@count as varchar(10)), 6) 
结果:

select 1 as id,
       'qw2££!"£$%^&**(' as F into #TESTTABLE
insert #TESTTABLE 
values (2, 'xxx'),
       (3, ''), 
       (4,'$'),
       (5,'qq""ee$$')

;with cte(id, stripped) as (
    select id, cast(F as varchar(1024)) from #TESTTABLE
    union all 
    select id, cast(stuff(stripped, patindex('%[^a-z]%', stripped), 1, '') as varchar(1024))
    from cte
    where patindex('%[^a-z]%', stripped) > 0
)
select * from cte
    where patindex('%[^a-z]%', stripped) = 0
order by id

有关更多详细信息

只需
&
和空格或任何非字母字符?链接中UDF的可能副本可以很好地实现这一点。感谢并抱歉不再使用功能您不能使用功能?
>>id  stripped
>>1   qw
>>2   xxx
>>3 
>>4 
>>5   qqee
Declare @temp varchar(30)
Set @temp = 'A & B'
While PatIndex('%[^a-z]%', @Temp) > 0
Set @Temp = Stuff(@Temp, PatIndex('%[^a-z]%', @Temp), 1, '')

SELECT @id= (UPPER(SUBSTRING(@Temp,1,2)))+(UPPER(SUBSTRING((SELECT table.column2 FROM tablename WHERE tablename.column1 = @b),1,2))) + RIGHT('000000000' + CAST(@count as varchar(10)), 6)
DECLARE @str VARCHAR(400)
DECLARE @expres  VARCHAR(50) = '%[~,@,#,$,%,&,*,(,),.,!]%'
  SET @str = 'a&b'
  WHILE PATINDEX( @expres, @str ) > 0
      SET @str = Replace(REPLACE( @str, SUBSTRING( @str, PATINDEX( @expres, @str ), 1 ),''),'-',' ')

  SELECT @str