--1.提取中文 create function dbo.getCN ( @str as nvarchar(4000) ) returns nvarchar(4000) as begin declare @word nchar(1),@CN nvarchar(4000) set @CN='' while len(@str)>0 begin set @word=left(@str,1) if unicode(@word) between 19968 and 19968+20901 set @CN=@CN+@word set @str=right(@str,len(@str)-1) end return @CN end PRINT dbo.getCN('ASDKG论坛KDL') --论坛 PRINT dbo.getCN('ASDKG論壇KDL') --論壇 PRINT dbo.getCN('ASDKDL') --空 --2.提取数字 CREATE FUNCTION DBO.getNumber(@S VARCHAR(100)) RETURNS VARCHAR(100) AS BEGIN WHILE PATINDEX('%[^0-9]%',@S) > 0 BEGIN set @S=stuff(@S,patindex('%[^0-9]%',@S),1,'') END RETURN @S END GO --测试 多个条件用逗号隔开 PATINDEX('%[^0-9,*]%',@S) > 0 PRINT dbo.getNumber('呵呵ABC123ABC') GO --123 --3.提取英文 CREATE FUNCTION DBO.getEn(@S
[MSSQL]自定义提取中文,简体中文,英文,数字函数汇总
关注
打赏