当前位置: 代码迷 >> Sql Server >> 怎么把字符串中的某个字符替换
  详细解决方案

怎么把字符串中的某个字符替换

热度:79   发布时间:2016-04-24 20:42:30.0
如何把字符串中的某个字符替换
如字符串:0-28080 612-0  要想得到的结果是0280806120,
中间的空格值也要去掉,
或者有无一个函数可以实现除了 英文和数字,其它字符都替换成空(无)
字符

------解决方案--------------------
select replace(replace('0-28080 612-0',' ',''),'-','')
------解决方案--------------------

--創建自定義函數
CREATE FUNCTION [dbo].[fe_str]
(
@p1 VARCHAR(MAX)
)
RETURNS VARCHAR(MAX)
AS
BEGIN
DECLARE @r VARCHAR(MAX)
SET @r=''
;
WITH a1 AS
(
SELECT @p1 z1,CAST('' AS char(1)) z2,1 n
UNION ALL
SELECT z1,
CAST(CASE WHEN SUBSTRING(z1,n,1) LIKE '[0-9a-zA-Z]' THEN SUBSTRING(z1,n,1) ELSE ' ' END AS CHAR(1)),
n+1
FROM a1
WHERE n<=LEN(z1)
)
SELECT @r=@r+z2 FROM a1 WHERE z2<>''
OPTION(MAXRECURSION 0)
RETURN @r
END
GO

--調用自定義函數
SELECT dbo.fe_str('0-28080$ 612#-0ABC')
  相关解决方案