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@@
·