如何用SQL语句返回字段中包含的数字?

13023600339 2006-01-15 04:03:59
有一个字段,类型为VARCHAR,我现在需要用SQL语句返回一个结果集,内容为提取此字段中所有的数字,怎么写?比如字段内容为KL133+230,我想取得的结果是133230
...全文
176 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
mislrb 2006-01-15
  • 打赏
  • 举报
回复
mark
lsqkeke 2006-01-15
  • 打赏
  • 举报
回复
create function jk(
@var varchar(500)
)returns varchar(500)
as
begin
declare @a varchar(500)
set @a=''
while(len(@var)>0)
begin
if left(@var,1)>='0' and left(@var,1)<='9'
set @a=@a+left(@var,1)
set @var=stuff(@var,1,1,'')
end
return @a
end


lsqkeke 2006-01-15
  • 打赏
  • 举报
回复
declare @var varchar(500),@a varchar(500),@i int
select @var='KL133+230',@a='',@i=len(@var)
while(len(@var)>0)
begin
if left(@var,1)>='0' and left(@var,1)<='9'
begin
set @a=@a+left(@var,1)
end

set @var=stuff(@var,1,1,'')
end
select @a
OracleRoob 2006-01-15
  • 打赏
  • 举报
回复
--创建自定义函数
create function fn_getnum(@str nvarchar(4000))
returns nvarchar(4000)
as
begin
declare @i int
declare @strret nvarchar(4000)

set @i = 0
set @strret = ''

while @i <= len(@str)
begin
if substring(@str,@i,1) in ('0','1','2','3','4','5','6','7','8','9')
set @strret=@strret + substring(@str,@i,1)
set @i = @i + 1
end

return @strret
end
go

--调用
select dbo.fn_GetNum('KL133+230')
--返回:133230


select dbo.fn_GetNum(字段名)
from 表名

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧