需要去除特殊符号换言之 只取中文数字字母即可
注意:下面的 '吖-座' 不是乱码 就这样写
.
CREATE FUNCTION [dbo].fn_IsNotSpecial
(
@str VARCHAR(8000)
)
RETURNS VARCHAR(500)
AS
BEGIN
WHILE PATINDEX('%[^吖-座A-Za-z0-9]%',@str) > 0
SET @str = STUFF(@str,PATINDEX('%[^\吖-座A-Za-z0-9]%',@str),1,'')
RETURN @str
END
-- 测试
SELECT dbo.fn_IsNotSpecial('p120pp@2222刘()JUHUPIJ''/')
--输出p120pp2222刘JUHUPIJ
下面的是分开取的 原谅我傻傻的试了半天怎么可以一起取中文数字字母
CREATE FUNCTION f_RemoveChinese
(
@str VARCHAR(500)
)
RETURNS VARCHAR(500)
AS
BEGIN
-- '%[0-9]%' 所有數字
-- '%[A-Za-z]%' 所有字母
-- '%[A-Za-z0-9]%' 所有數字與字母
-- .... 組合使用,依此類推
WHILE PATINDEX('%[吖-咗]%',@str) > 0
SET @str = STUFF(@str,PATINDEX('%[吖-咗]%',@str),1,'')
RETURN @str
END
GO
SELECT dbo.f_RemoveChinese('愛@@情123騙子我問@@你') -- @@123@@