您现在的位置: 万盛学电脑网 >> 程序编程 >> 数据库 >> 数据库综合 >> 正文

SQL Server提取数字、提取英文、提取中文的sql语句

作者:佚名    责任编辑:admin    更新时间:2022-06-22

今天给大家介绍了SQL Server 提取数字、提取英文、提取中文语句 ,需要的朋友可以参考下,希望可以帮助到大家。

 

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162--SQL 判断字段值是否有中文 create function fun_getCN(@str 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  select dbo.fun_getCN('ASDKG论坛KDL') --论坛 select dbo.fun_getCN('ASDKG論壇KDL') --論壇 select dbo.fun_getCN('ASDKDL') --空   ------------------------------------- --提取数字 IF OBJECT_ID('DBO.GET_NUMBER2') IS NOT NULLDROP FUNCTION DBO.GET_NUMBER2 GO CREATE FUNCTION DBO.GET_NUMBER2(@S VARCHAR(100)) RETURNS VARCHAR(100) ASBEGINWHILE PATINDEX('%[^0-9]%',@S) > 0 BEGINset @s=stuff(@s,patindex('%[^0-9]%',@s),1,'') ENDRETURN @S ENDGO --测试 PRINT DBO.GET_NUMBER('呵呵ABC123ABC') GO --123   -------------------------------------------------------------------- --提取英文 IF OBJECT_ID('DBO.GET_STR') IS NOT NULLDROP FUNCTION DBO.GET_STR GO CREATE FUNCTION DBO.GET_STR(@S VARCHAR(100)) RETURNS VARCHAR(100) ASBEGINWHILE PATINDEX('%[^a-z]%',@S) > 0 BEGINset @s=stuff(@s,patindex('%[^a-z]%',@s),1,'') ENDRETURN @S ENDGO --测试 PRINT DBO.GET_STR('呵呵ABC123ABC') GO   -------------------------------------------------------------------- --提取中文 IF OBJECT_ID('DBO.CHINA_STR') IS NOT NULLDROP FUNCTION DBO.CHINA_STR GO CREATE FUNCTION DBO.CHINA_STR(@S NVARCHAR(100)) RETURNS VARCHAR(100) ASBEGINWHILE PATINDEX('%[^吖-座]%',@S) > 0