要求:过滤数据库中某个字符串 字段 中的单个字母或是数字
开始的时候使用 sql 函数 LEN
SELECT * FROM TABLE1 WHERELEN(name)>1
结果其中的单个汉字也过滤掉了。这个函数返回的是字符串的长度。
于是使用另一个长度函数 DATALENGTH
SELECT * FROM TABLE1 WHEREDATALENGTH(name)>1
结果中过滤了单个字母和数字,而汉字单个返回的长度为2,所以没有过滤掉。
要求:获得混合字符串中的中文
如果汉字在右边
declare @S varchar(20)
set @S='4B工程师'
--如果你的汉字都在右边
selectright(@S,(DATALENGTH(@S)-len(@S)))
/*
工程师
*/
提取中文的函数
--提取中文
IF OBJECT_ID('DBO.CHINA_STR') ISNOT NULL
DROP FUNCTION DBO.CHINA_STR
GO
CREATE FUNCTION DBO.CHINA_STR(@SNVARCHAR(100))
RETURNS VARCHAR(100)
AS
BEGIN
WHILE PATINDEX('%[^吖-座]%',@S) > 0
SET @S = STUFF(@S,PATINDEX('%[^吖-座]%',@S),1,N'')
RETURN @S
END
GO
PRINT DBO.CHINA_STR('呵呵ABC123ABC')
GO