如何批量去掉字段里的字母,而留下数字?

bpcbrr 2011-02-18 02:10:43
如何批量去掉字段里的字母,而留下数字?
举个例子:
090 3 833 590 (aTuaán) 变成 090 3 833 590
...全文
713 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
fwacky 2011-02-18
  • 打赏
  • 举报
回复

CREATE FUNCTION f_str(@Value NVARCHAR(1000))
RETURNS NVARCHAR(1000)
AS
BEGIN
WHILE PATINDEX('%[^0-9]%',@Value)>0
SELECT @Value=STUFF(@Value,PATINDEX('%[^0-9]%',@Value),1,'')
RETURN @Value
END


这个就不错了!
Linares 2011-02-18
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 acherat 的回复:]

SQL code

create function get_shuzi(@instr varchar(1000))
returns varchar(1000)
as
begin
declare @str varchar(800)
declare @object int
declare @r varchar(800)
set @str='var data = ……
[/Quote]

正则应该用 [^1234567890]+
替换次数大大减少
w75251455 2011-02-18
  • 打赏
  • 举报
回复
最进迷上了这xml 可能和楼主要的不一样~~不为成分只为分享!!!

create table #tb
(
id int identity(1,1),
vars varchar(1000)
)
insert into #tb select '090 3 833 590 (aTuaán)'
union all select '090 3 854v33 590 (aTuaán)'
union all select '04f90 3 854v33 590 (aTuaán)'
union all select '090 3 8533 59d0 (aTuaán)'


select
stuff((SELECT (case when PATINDEX('%[^0-9]%',id)=0 then ' '+id else null end)
FROM (SELECT [value] = CONVERT(XML , '<r>' + REPLACE( t.vars, ' ' , '</r><r>')+ '</r>')
) A
OUTER APPLY ( SELECT id = N.r.value('.' , 'varchar(100)')
FROM A.[value].nodes('/r') N (r)
) B
for xml path('')),1,1,'')
from #tb t


--------------------
090 3 833 590
090 3 590
3 590
090 3 8533

(4 行受影响)
AcHerat 2011-02-18
  • 打赏
  • 举报
回复

create function get_shuzi(@instr varchar(1000))
returns varchar(1000)
as
begin
declare @str varchar(800)
declare @object int
declare @r varchar(800)
set @str='var data = "'+@inStr+'";var reCat = /[^1234567890]/gi;data.replace(reCat,"");'
exec sp_OACreate 'MSScriptControl.ScriptControl',@object output
exec sp_OASetProperty @object, 'Language','javascript'
exec sp_OAMethod @object, 'eval', @r out,@str
return @r
end
go

--正则的!上边多了两个符号的筛选,这个对的。
AcHerat 2011-02-18
  • 打赏
  • 举报
回复

create function get_shuzi(@instr varchar(1000))
returns varchar(1000)
as
begin
declare @str varchar(800)
declare @object int
declare @r varchar(800)
set @str='var data = "'+@inStr+'";var reCat = /[^1234567890,*]/gi;data.replace(reCat,"");'
exec sp_OACreate 'MSScriptControl.ScriptControl',@object output
exec sp_OASetProperty @object, 'Language','javascript'
exec sp_OAMethod @object, 'eval', @r out,@str
return @r
end
go

--正则的!
Godsaidlwq 2011-02-18
  • 打赏
  • 举报
回复

create function FN_GetNumber
(
@str varchar(8000)
)
returns varchar(8000)
begin
declare @str2 varchar(8000)
declare @i int
select @i=len(@str),@str2=''
while @i>=0
begin
if unicode(left(@str,1)) between 48 and 57
select @str2=@str2+left(@str,1)
select @str=stuff(@str,1,1,'')
select @i=@i-1
end
return @str2
end
go

declare @str varchar(8000)
select @str='23lkjdf 2134;lkjdfg了中'
select dbo.fn_getnumber(@str)

drop function dbo.fn_getnumber
wing7742 2011-02-18
  • 打赏
  • 举报
回复
大版的这个犀利啊
收藏 验证去
中国风 2011-02-18
  • 打赏
  • 举报
回复
以上函數功能將把非數字的內容去掉
--用法
select dbo.f_str(列) as 列 from Table
中国风 2011-02-18
  • 打赏
  • 举报
回复
CREATE FUNCTION f_str(@Value NVARCHAR(1000))
RETURNS NVARCHAR(1000)
AS
BEGIN
WHILE PATINDEX('%[^0-9]%',@Value)>0
SELECT @Value=STUFF(@Value,PATINDEX('%[^0-9]%',@Value),1,'')
RETURN @Value
END
wing7742 2011-02-18
  • 打赏
  • 举报
回复
楼上达人可以说说这个函数的写法么 比较关注通用性

不想a-z&A-Z一个一个的去过滤吧这很费体力的
bpcbrr 2011-02-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hdhai9451 的回复:]

这种要自己写一个函数处理才行的
[/Quote]你会写么,示范一下
Andy__Huang 2011-02-18
  • 打赏
  • 举报
回复
这种要自己写一个函数处理才行的
禅道项目管理软件5.3版本于3月26日正式发布,该版本主要调整界面和修复bug。 修改记录: 完成的需求 设置ie8, ie9的兼容模式 bug的操作系统列表和浏览器列表调整 搜索,计划应该按照日期倒序排 用例前置条件可以回车换行 关闭护项目和产品的时候,历史记录还是英文的用户名,应该用中文的。 任务通过编辑或者工时完成的时候要自动修改指派给字段 把index.php面的构造函数警告的错误日志去掉。 关于录入工时更新任务的状态 将“后台->清除数据”彻底隐藏 任务记录工时的时候在表zt_taskestimate中记录account属性的值 提需求时所属计划列表倒序排序 首页的动态查询逻辑调整 修复框架默认主题pjax的错误 美化邮件提醒的模板 去掉搜索中产品和项目代码前的首字母 执行sql的时候,忽略注释 创建版本的时候提示上一个版本的名称 测试任务的起止时间可以是一天 调整燃尽图的逻辑 把需求列表模块区域产品名称前面的代号去掉 版本增加附件上传功能 发布增加附件上传功能 发布的详情页面增加下载链接 需求的批量关闭页面去掉table的hover样式 增强系统安全 增强错误提示框架 任务完成的时指派对象只列团队成员 将项目的目标和描述合并 卸载插件的时候备份相应的表 调整产品维护模块页面的样式 导出数据的时候,把相应的id号都带上。 维护模块的时候模块路径应该垂直居中。 批量添加任务的时候,任务标题增加同需求功能 批量添加任务的时候,增加模块字段 批量编辑任务的时候,增加模块字段 调整附件列表的菜单 王春生 把一键安装包面的localhost改成127.0.0.1 添加任务的时候默认取需求所在的模块 王春生 批量添加需求、任务、bug和用例的时候,将换行符处理为 调整导出模板的文案 调整邮件格式 bug的批量编操作增加批量关闭操作 bug的关闭页面弹出的来的关闭页面,其中备注应当垂直居中。 批量添加编辑任务,相关需求的信息改为[px, xh] 任务指派的时候历史记录显示真实姓名 详细说明:http://php.662p.com/thread-676-1-1.html

22,298

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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