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)
添加回答
举报
0/150
提交
取消