为了账号安全,请及时绑定邮箱和手机立即绑定

T-SQL选择查询以删除非数字字符

T-SQL选择查询以删除非数字字符

米脂 2019-08-28 14:23:27
T-SQL选择查询以删除非数字字符我在具有可变alpha长度的列中有脏数据。我只想删除任何不是0-9的东西。我不想运行函数或proc。我有一个类似于在文本之后抓取数值的脚本,它看起来像这样:Update TableNameset ColumntoUpdate=cast(replace(Columnofdirtydata,'Alpha #','') as int)where Columnofdirtydata like 'Alpha #%'And ColumntoUpdate is Null我认为它会工作得很好,直到我发现我认为只有Alpha#12345789格式的某些数据字段不...需要剥离的数据示例AB ABCDE # 123ABCDE# 123AB: ABC# 123我只想要123.确实所有数据字段都具有#之前的数字。我尝试了substring和PatIndex,但我的语法不正确或者其他东西。任何人对解决这个问题的最佳方法有任何建议吗?谢谢!
查看完整描述

3 回答

?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

请参阅此博客文章,了解从SQL Server中的字符串中提取数字。下面是您的示例中使用字符串的示例:

DECLARE @textval NVARCHAR(30)SET @textval = 'AB ABCDE # 123'SELECT LEFT(SUBSTRING(@textval, PATINDEX('%[0-9.-]%', @textval), 8000),
           PATINDEX('%[^0-9.-]%', SUBSTRING(@textval, PATINDEX('%[0-9.-]%', @textval), 8000) + 'X') -1)


查看完整回答
反对 回复 2019-08-28
  • 3 回答
  • 0 关注
  • 570 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信