在数据库中查询结果中包含特殊字符,如 ,特殊字符的类型不可预期可能有很多种,要将这些字符在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 [email protected]+'AS NECOL FROM Erro'EXEC (@SQLCMD) --NECOL实打实的大厦实打大厦
------解决方案--------------------
这....
貌似不同的字体有不同的形式....
SSMS 里面复制不下来。
------解决方案--------------------
类似 Wingdings 里面那些符号,和字体有关。