SQL语句提取字符串中数字

SQL语句提取字符串中数字,第1张

问题确认:你是要提取以下划线(_)为分隔符的字串的第三个子字串。

答案:

select

dbogetpara('14层_303盘区_5307工作面',3,'_')

条件:先要再数据库中加入这个自定议函数。这里免费奉献给你一个有用的函数,用于按指定分隔符提取字串。

create

function

getpara

(@sql

nvarchar(3000),--要分割的原字串。

@sn

int,

--要取第几个

@deli

varchar(1))--分隔符

returns

varchar(1000)--返回值

as

begin

declare

@first

int,@last

int,@result

varchar(1000),@sn0

int

select

@sn0=0,@first=0,@last=1,@sql=@sql+replicate(@deli,5)

while

@sn0!=@sn

begin

select

@sn0=@sn0+1,@first=@last,@last=charindex(@deli,@sql,@last)+1

end

set

@result=substring(@sql,@first,@last-@first-1)

return

(

@result

)

end

go

一条记录时采用以下方法:使用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]%',@aa),1)/把找出来的数字进行相加/

set

@aa=substring(@aa,1,PATINDEX('%[0-9]%',@aa)-1)+

substring(@aa,PATINDEX('%[0-9]%',@aa)+1,len(@aa)-PATINDEX('%[0-

9]%',@aa))

/把找出来的数字从原先的字符串中踢除出来,然后再循环找出更多的数字/

end

select

@bb/要求得到的结果/

要对一张表中的所有记录进行查询时,可以把上面的语句改写成一个存储过程,采用游标进行处理,并把找出来的记录插入到相应的虚拟表里面,即可得到你想要的结果

SELECT FROM table WHERE field NOT LIKE '%[0-9a-zA-Z]%' 在SQL中,有四种模糊查询方式,即可以使用匹配方式。 %表示匹配任意 [xxx] 匹配 [ ] 之间的字符。 _ 匹配一个字符 [^ ] 表示不含 [ ] 内的字符。

set rs=servercreateobject("adodbrecordset")sql="select from 表名"rsopen sql,conn,1,1'开始赋值FieldCount=rsfieldscount

select 

case when bFModel like '%=%' then SUBSTRING(bFModel, CHARINDEX('=',bFModel)+1,LEN(bFModel)-CHARINDEX('=',bFModel)) 

     when bFModel like '%%' then SUBSTRING(bFModel, 0,LEN(bFModel)-CHARINDEX('',bFModel))

end as 长度

采用下列语句是否可以呢?

select [列1],[列2],[列3]  from [表名] where [列] = [列数值]

请采用上面的语句试试,如果不可以,请追加提问内容!

以上就是关于SQL语句提取字符串中数字全部的内容,包括:SQL语句提取字符串中数字、在SQLServer中如何把列中包含的数字提取出来、SQL准确查一串数字的语法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9706696.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存