Sql去除字符串中所有汉字和符号,仅保留字母数字的方法
核心思想在于下面几个模式的组合使用:
%[0-9]% :所有数字
%[A-Za-z]% :所有字母
%[吖-咗]% :所有汉字
-- '%[0-9]%' 所有數字
-- '%[A-Za-z]%' 所有字母
-- '%[A-Za-z0-9]%' 所有數字與字母
-- .... 組合使用,依此類推
1. 去除(提取)汉字(符号、字母、数字):
举出一例,其他类似:
1 CREATE FUNCTION f_RemoveChinese 2 ( 3 @str VARCHAR(500) 4 ) 5 RETURNS VARCHAR(500) 6 AS 7 BEGIN 8 -- '%[0-9]%' 所有数字 9 -- '%[A-Za-z]%' 所有字母 10 -- '%[A-Za-z0-9]%' 所有数字与字母 11 -- .... 组合使用,依此类推 12 WHILE PATINDEX('%[吖-咗]%',@str) > 0 13 SET @str = STUFF(@str,PATINDEX('%[吖-咗]%',@str),1,'') 14 RETURN @str 15 END 16 GO 17 18 SELECT dbo.f_RemoveChinese('愛@@情123騙子我問@@你') -- @@123@@
·