我在具有可变alpha长度的列中有脏数据.我只想删除任何不是0-9的东西.
我不想运行函数或proc.我有一个类似于在文本之后抓取数值的脚本,它看起来像这样:
Update TableName
set ColumntoUpdate=cast(replace(Columnofdirtydata,'Alpha #','') as int)
where Columnofdirtydata like 'Alpha #%'
And ColumntoUpdate is Null
Run Code Online (Sandbox Code Playgroud)
我认为它会工作得很好,直到我发现我认为只有Alpha#12345789格式的某些数据字段不...
需要剥离的数据示例
AB ABCDE # 123
ABCDE# 123
AB: ABC# 123
Run Code Online (Sandbox Code Playgroud)
我只想要123.确实所有数据字段都具有#之前的数字.
我尝试了substring和PatIndex,但我的语法不正确或者其他东西.任何人对解决这个问题的最佳方法有任何建议吗?
谢谢!
我们有一些输入数据有时会出现在最后的字符中.
数据作为varchar()从源系统进入,我们尝试转换为十进制失败b/c这些字符.
Ltrim和Rtrim不会删除字符,因此我们不得不这样做:
UPDATE myTable
SET myColumn = replace(myColumn,char(160),'')
WHERE charindex(char(160),myColumn) > 0
Run Code Online (Sandbox Code Playgroud)
这适用于 ,但对于任何非字母数字(或在本例中为数字)字符,是否有一种好方法可以执行此操作?