要求:过滤数据库中某个字符串 字段 中的单个字母或是数字
开始的时候使用 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
PRINT DBO.CHINA_STR('呵呵ABC123ABC')
GO
总结
以上是内存溢出为你收集整理的SQLServer——字符长度全部内容,希望文章能够帮你解决SQLServer——字符长度所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)