《SQL取出字符串中的汉字-字母或是数字》由会员分享,可在线阅读,更多相关《SQL取出字符串中的汉字-字母或是数字(3页珍藏版)》请在金锄头文库上搜索。
1、go-创建函数(得到字符串中的汉字 )create function dbo.m_getchinese(chinese nvarchar(max)returns varchar(100)asbeginwhile patindex(%吖-咗% ,chinese) 0beginset chinese = stuff(chinese,patindex(%吖-咗%,chinese),1,N);endreturn chineseendgo-创建函数(得到字符串中的字母 )create function dbo.m_getstr(maco varchar(100)returns varchar(max)a
2、sbeginwhile patindex(%a-z%,maco) 0beginset maco=stuff(maco,patindex(%a-z%,maco),1,)endreturn macoendgo-创建函数(得到字符串中的数字 )create function dbo.m_getnumber(mysql_one nvarchar(200)returns varchar(200)begindeclare mysql_two varchar(200)select mysql_two= substring(mysql_one,patindex(%0-9.%,mysql_one),patind
3、ex(%0-9.%,substring(mysql_one,patindex(%0-9.%,mysql_one),len(mysql_one)-patindex(%0-9.%,mysql_one)+1)-1)return mysql_two;end-测试select dbo.m_getchinese(China2009 中国 HRB4-1v)select dbo.m_getstr(China2009 中国 HRB4-1v)select dbo.m_getnumber(China2009 中国 HRB4-1v)-运行结果/*-中国-ChinaHRBv-2009*/-说明一下-上面这个取数字是可以
4、取浮点型的select dbo.m_getnumber (字段.456A(AA)A)- 正常select dbo.m_getnumber (CHinese2.1day)-正常select dbo.m_getnumber (Name5.01From)-正常select dbo.m_getnumber (9898Address)-正常select dbo.m_getnumber (aaaaaForm2.3333)-错误-修正函数go/* 取出字符串中间的数字(第二版)*/create function dbo.m_getnumberV2.0(mysql_one nvarchar(200)retur
5、ns varchar(200)begin declare mysql_two varchar(200)declare sql_one intdeclare sql_two intselect sql_one= patindex(%0-9.%,mysql_one)select sql_two=patindex(%0-9.%,substring(mysql_one,patindex(%0-9.%,mysql_one),len(mysql_one)-patindex(%0-9.%,mysql_one)+1)if sql_two=0beginselect mysql_two= substring (m
6、ysql_one,sql_one,len(mysql_one)+1-sql_one)endelsebeginselect mysql_two=substring (mysql_one,sql_one,sql_two-1)endreturn mysql_two;end-测试示例select dbo.m_getnumberV2.0 (字段.456A(AA)A)-正常select dbo.m_getnumberV2.0 (CHinese2.1day)-正常select dbo.m_getnumberV2.0 (Name5.01From)-正常select dbo.m_getnumberV2.0 (9898Address)-正常select dbo.m_getnumberV2.0 (aaaaaForm2.3333)-正常