SQL 怎样从字符串中提起纯数字?

怎样从字符串中提起纯数字?这个字符串是SQL 里的某一个列 里面大概有10000多条数据 类似:SSD22DK,SASD9833,SDJ1332,SFSA9921CI 之类的 怎样从这里面提取出22, 9833,9921 这样的数字 求解!~

可以创建一个自定义函数,专门用来截取字符串中所有的数字。

自定义函数:
CREATE function dbo.F_Get_No
(
@No varchar(100)
)
RETURNS INT
AS
BEGIN
WHILE PATINDEX('%[^0-9]%',@No)>0
BEGIN
SET @No=STUFF(@No,PATINDEX('%[^0-9]%',@No),1,'')
END
RETURN CONVERT(INT,@No)
END

使用:
select dbo.F_Get_No(字段) from 表
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-08-02
oracle自带的函数replace和translate就可以完成,,
select replace(translate(lower(字符串),'abcdefghijklmnopqrstuvwxyz',rpad('a',26,'a')),'a','') as new from dual;

这两个函数的交替使用在处理字符串方面有非常重要的作用
第2个回答  2010-04-05
可以考虑逐字遍历,估计效率不怎么样。

SQL 怎样从字符串中提起纯数字?
可以创建一个自定义函数,专门用来截取字符串中所有的数字。自定义函数:CREATE function dbo.F_Get_No (No varchar(100))RETURNS INT AS BEGIN WHILE PATINDEX('%[^0-9]%',@No)>0 BEGIN SET @No=STUFF(@No,PATINDEX('%[^0-9]%',@No),1,'')END RETURN CONVERT(INT,@No)END 使用:...

sql,字符串中取数字
4、编写语句,取字符串中的数字;select t.*, regexp_replace(v_str,'\\D','') v_str2 from test_str t;

PL\/SQL中 如何在字符串中提取数字 ?
select regexp_substr('水库新村332号','[0-9]+' ) from dual;--用正则表达式取出数字 select regexp_substr('水库新村332号','[[:digit:]]+') from dual;

SQL怎样取出字符串中的数字?
比如你的表叫作TALBE1,字段是str1,类型为nvarchar,那么找出有湘政发的最大号加1这样写 select max(convert(int,substring(str1,patindex(N'%[1234567890]%',str1),len(str1)-patindex(N'%[1234567890]%',str1)+1-patindex(N'%[1234567890]%',reverse(str1))+1)))+1 from table1 where...

SQL中如何从字符串中取值。
charindex(')',select 字段名 from 表名 where id=1))-charindex('(',select 字段名 from 表名 where id=1)))就是两个函数 substring("1231",1,2) ="12" 1起始位置 2截取长度 charindex('(','ab(cd')=3 获取在字段'ab(cd' 中‘(’字符在字符串中的索引位置 ...

SQL怎样取出字符串中的数字?
select case when b.FModel like '%=%' then SUBSTRING(b.FModel, CHARINDEX('=',b.FModel)+1,LEN(b.FModel)-CHARINDEX('=',b.FModel)) when b.FModel like '%*%' then SUBSTRING(b.FModel, 0,LEN(b.FModel)-CHARINDEX('*',b.FModel))end as 长度 ...

怎样在SQL中把一列中的数字提取出来
一条记录时采用以下方法:使用PATINDEX函数找出字符串中第一次出现数字的位置 declare @aa varchar(80),---INFO列 bb varchar(80)set @aa ='你好12按时地方'set @bb=''while PATINDEX('%[0-9]%',@aa)<>0 \/*每次循环找出一个数字*\/ begin set @bb = @bb+substring...

SQL怎样取出字符串中的数字?
如果只有两种情况,可以分开来考虑 select case when left(规格型号,1)='L' then substring(规格型号,3,len(规格型号)-2)when charindex(规格型号,'*',1)>0 then substring(规格型号,1,charindex(规格型号,'*',1)-1)else ""end 规格 from 表 ...

在sql中如何将字符串数字转换成数字?
先检查金额列的数据是否都符合小数规范,用cast(金额 as decimal(10,4))>500或者 convert(decimal(10,4),金额)>500 注:decimal的长度和小数位数根据自己需要设定 sql中将字符串数字转换成数字:方法一:SELECT CAST('123' AS SIGNED integer);方法二:SELECT CONVERT('123',SIGNED);方法三:SELECT...

在SQLServer中如何把列中包含的数字提取出来
一条记录时采用以下方法:使用PATINDEX函数找出字符串中第一次出现数字的位置 declare aa varchar(80),---INFO列 bb varchar(80)set aa ='你好12按时地方'set bb=''while PATINDEX('%[0-9]%',@aa)<>0 \/*每次循环找出一个数字*\/ begin set bb = bb+substring(@aa,PATINDEX('%[0-9]%...

相似回答