用sql获取某字符串中的数字部分的语句

代码如下:

create function dbo.F_Get_No
(
@No varchar(100)
)
RETURNS bigint
AS
BEGIN
WHILE PATINDEX('%[^0-9]%',@No)>0
BEGIN
SET @No=STUFF(@No,PATINDEX('%[^0-9]%',@No),1,'') --删掉一个非数字的字符,循环结束,剩余的为数字部分
END
RETURN CONVERT(bigint,@No)
END

此函数可以返回某字符串中的数字部分
PATINDEX函数 返回所查内容在字符串中第一次出现的索引
STUFF函数 删除指定长度的字符并在指定的起始点插入另一组字符。
select F_Get_No('sdsdf2334sfsd234') 返回'2334234'
注明:此方法可以解决查询某字段中数字部分为固定值的记录,字母部分为定值类似

(0)

相关推荐

  • 用sql获取某字符串中的数字部分的语句

    复制代码 代码如下: create function dbo.F_Get_No ( @No varchar(100) ) RETURNS bigint AS BEGIN WHILE PATINDEX('%[^0-9]%',@No)>0 BEGIN SET @No=STUFF(@No,PATINDEX('%[^0-9]%',@No),1,'') --删掉一个非数字的字符,循环结束,剩余的为数字部分 END RETURN CONVERT(bigint,@No) END 此函数可以返回某字符串中的数字

  • mysql中取字符串中的数字的语句

    复制代码 代码如下: one: declare @s varchar(20) declare @i varchar(20) set @i='' set @s='新会员必须购买350元产品' while PATINDEX ('%[0-9]%', @s)>0 begin set @i=@i+substring(@s,PATINDEX ('%[0-9]%', @s),1) set @s=stuff(@s,1,PATINDEX ('%[0-9]%', @s),'') end select @i -- 3

  • js 截取或者替换字符串中的数字实现方法

    在js操作表格时,我们经常会需要得到或者修改name中的下标,如:name="cust[1]/custName"; 替换:name.replace(/[\d]+/,num); //num为你需要替换成的数字变量 获取:name.match(/[\d]+/). 获取多个:name.match(/[\d]+/g). 以上这篇js 截取或者替换字符串中的数字实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • 解决Oracle字符串中包含数字、特殊符号的排序问题

    问题描述: 某小区,需要按照小区.楼栋.单元号.房间号进行排序,但是按照地址描述排序时,因为字符串中包含数字,所以造成了如下的结果, 1号楼之后应该是2号楼,但是查询结果却是10号楼 . 尝试解决 使用正则表达式替换 结果: 虽然楼栋号排序正常了,但是会发现房间号排序出现了混乱.  继续想办法 终极办法: 使用translate函数 可以发现,结果正常显示 . 以下附上translate使用方法 一.语法: TRANSLATE(string,from_str,to_str) 二.目的 返回将(所

  • python正则表达式从字符串中提取数字的思路详解

    python从字符串中提取数字 使用正则表达式,用法如下: ## 总结 ## ^ 匹配字符串的开始. ## $ 匹配字符串的结尾. ## \b 匹配一个单词的边界. ## \d 匹配任意数字. ## \D 匹配任意非数字字符. ## x? 匹配一个可选的 x 字符 (换言之,它匹配 1 次或者 0 次 x 字符). ## x* 匹配0次或者多次 x 字符. ## x+ 匹配1次或者多次 x 字符. ## x{n,m} 匹配 x 字符,至少 n 次,至多 m 次. ## (a|b|c) 要么匹配

  • Mysql字符串截取及获取指定字符串中的数据

    前言:本人遇到一个需求,需要在MySql的字段中截取一段字符串中的特定字符,类似于正则表达式的截取,苦于没有合适的方法,百度之后终于找到一个合适的方法:substring_index('www.sqlstudy.com.cn', '.', -2) 强烈推荐该方法获取含有特定字符的数据. substring_index(input,split,index):input为要截取的字符,split为分隔符,Index为要截取第index个分隔符左(index为正)或右(index为负)的字符串. 拿个

  • java从字符串中提取数字的简单实例

    随便给你一个含有数字的字符串,比如: String s="eert343dfg56756dtry66fggg89dfgf"; 那我们如何把其中的数字提取出来呢?大致有以下几种方法,正则表达式,集合类,还有就是String类提供的方法. 1 String类提供的方法: package 测试练习; import Java.util.*; public class get_StringNum { /** *2016.10.25 */ public static void main(Strin

  • java基于正则提取字符串中的数字功能【如提取短信中的验证码】

    本文实例讲述了java基于正则提取字符串中的数字功能.分享给大家供大家参考,具体如下: 使用Java正则可以很方便的从字符串中提取符合条件的内容. 1.提取字符串中所有的手机号: private void getPhoneNum(String smsBody) { Pattern pattern = Pattern.compile("(13|14|15|18)\\d{9}"); Matcher matcher = pattern.matcher(smsBody); while (mat

  • 详解Python3中字符串中的数字提取方法

    逛到一个有意思的博客在里面看到一篇关于ValueError: invalid literal for int() with base 10错误的解析,针对这个错误,博主已经给出解决办法,使用的是re.sub 方法 totalCount = '100abc' totalCount = re.sub("\D", "", totalCount) 但是没有说明什么含义,于是去查了其他的资料,做一下记录: 在Python3.5.2 官方文档re模块中sub函数的定义是: re

  • Mysql中实现提取字符串中的数字的自定义函数分享

    因需要在mysql的数据表中某一字符串中的字段提取出数字,在网上找了一通,终于找到了一个可用的mysql函数,可以有效的从字符串中提取出数字. 该mysql提取出字符串中的数字函数如下: 复制代码 代码如下: CREATE FUNCTION GetNum (Varstring varchar(50)) RETURNS varchar(30) BEGIN DECLARE v_length INT DEFAULT 0; DECLARE v_Tmp varchar(50) default ''; se

随机推荐