首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

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

2013-09-05 
如何把字符串中的某个字符替换如字符串:0-28080 612-0要想得到的结果是0280806120,中间的空格值也要去掉,

如何把字符串中的某个字符替换
如字符串: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')

热点排行