--【提取中文字符】 IF OBJECT_ID('dbo.fun_getCN') IS NOT NULL DROP FUNCTION dbo.fun_getCN GO create function dbo.fun_getCN(@str varchar(4000)) returns varchar(4000) as begin declare @word nchar(1),@CN varchar(4000) set @CN='' while len(@str)>0 begin set @word=left(@str,1) if unicode(@word) between 19968 and 40869 set @CN=@CN+@word set @str=right(@str,len(@str)-1) end return @CN end GO select dbo.fun_getCN('123我KK哈哈45') --中国 select unicode('一') select unicode('龥') unicode中文编码范围:19968~40869 参考 http://www.uni-graz.at/~vollmanr/unicode/uni_chinese.html --【提取中文】 IF OBJECT_ID('DBO.get_Chinese') IS NOT NULL DROP FUNCTION DBO.get_Chinese GO CREATE FUNCTION DBO.get_Chinese(@S NVARCHAR(100)) RETURNS VARCHAR(100) AS BEGIN WHILE PATINDEX('%[^吖-座]%',@S) > 0 SET @S = STUFF(@S,PATINDEX('%[^吖-座]%',@S),1,N'') RETURN @S END GO select DBO.get_Chinese('123我KK哈哈45') --【提取数字】 IF OBJECT_ID('dbo.GET_NUMBER2') IS NOT NULL DROP FUNCTION dbo.GET_NUMBER2 GO CREATE FUNCTION dbo.GET_NUMBER2(@S VARCHAR(100)) RETURNS VARCHAR(100) AS BEGIN WHILE PATINDEX('%[^0-9]%',@S) > 0 BEGIN set @s=stuff(@s,patindex('%[^0-9]%',@s),'') END RETURN @S END GO select dbo.GET_NUMBER2('123我KK哈哈45') --【提取英文】 IF OBJECT_ID('DBO.get_English') IS NOT NULL DROP FUNCTION DBO.get_English GO CREATE FUNCTION DBO.get_English(@S VARCHAR(100)) RETURNS VARCHAR(100) AS BEGIN WHILE PATINDEX('%[^a-z]%',patindex('%[^a-z]%','') END RETURN @S END GO SELECT DBO.get_English('123我KK哈哈45')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。