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

sql中替换多个特殊字符解决办法

2012-02-11 
sql中替换多个特殊字符在数据库中查询结果中包含特殊字符,如 ,特殊字符的类型不可预期可能有很多种,要将

sql中替换多个特殊字符
在数据库中查询结果中包含特殊字符,如 ,特殊字符的类型不可预期可能有很多种,要将这些字符在xml中无法识别,怎样在查询的存储过程中将这些特殊字符过滤掉,replace函数只能一个一个的替换 ,有没有更好的办法

[解决办法]

SQL code
希望对你有用-提取数字IF OBJECT_ID('DBO.GET_NUMBER2') IS NOT NULLDROP FUNCTION DBO.GET_NUMBER2GOCREATE FUNCTION DBO.GET_NUMBER2(@S VARCHAR(100))RETURNS VARCHAR(100)ASBEGINWHILE PATINDEX('%[^0-9]%',@S) > 0BEGINset @s=stuff(@s,patindex('%[^0-9]%',@s),1,'')ENDRETURN @SENDGO--测试PRINT DBO.GET_NUMBER('呵呵ABC123ABC')GO--123----------------------------------提取英文IF OBJECT_ID('DBO.GET_STR') IS NOT NULLDROP FUNCTION DBO.GET_STRGOCREATE FUNCTION DBO.GET_STR(@S VARCHAR(100))RETURNS VARCHAR(100)ASBEGINWHILE PATINDEX('%[^a-z]%',@S) > 0BEGINset @s=stuff(@s,patindex('%[^a-z]%',@s),1,'')ENDRETURN @SENDGO--测试PRINT DBO.GET_STR('呵呵ABC123ABC')GO----------------------------------提取中文IF OBJECT_ID('DBO.CHINA_STR') IS NOT NULLDROP FUNCTION DBO.CHINA_STRGOCREATE FUNCTION DBO.CHINA_STR(@S NVARCHAR(100))RETURNS VARCHAR(100)ASBEGINWHILE PATINDEX('%[^吖-座]%',@S) > 0SET @S = STUFF(@S,PATINDEX('%[^吖-座]%',@S),1,N'')RETURN @SENDGOPRINT DBO.CHINA_STR('呵呵ABC123ABC')GO
[解决办法]
SQL code
CREATE TABLE ErrorMessage ( NA VARCHAR(20))INSERT INTO ErrorMessage VALUES('')INSERT INTO ErrorMessage VALUES('★')INSERT INTO ErrorMessage VALUES('△')GO                    CREATE TABLE  Erro  ( NA1 VARCHAR(20))INSERT INTO Erro VALUES('实打实的大★厦')INSERT INTO Erro VALUES('实打大★厦')GO        DECLARE @REPLACECMD VARCHAR(2000)='NA1' SELECT  @REPLACECMD ='REPLACE('+ @REPLACECMD+','''+NA+''' ,'''')' FROM  ErrorMessage print @REPLACECMDDECLARE @SQLCMD VARCHAR(4000)=''SET @SQLCMD = 'select '+@REPLACECMD+'AS NECOL FROM Erro'EXEC (@SQLCMD)    --NECOL实打实的大厦实打大厦
[解决办法]
这....

 貌似不同的字体有不同的形式....

SSMS 里面复制不下来。
[解决办法]
类似 Wingdings 里面那些符号,和字体有关。

热点排行
Bad Request.