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
提交
取消