亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

SQL替換函數中的Regex模式?

SQL替換函數中的Regex模式?

SQL替換函數中的Regex模式?SELECT REPLACE('<strong>100</strong><b>.00 GB', '%^(^-?\d*\.{0,1}\d+$)%', '');我想用上面的正則表達式替換數字的兩個部分之間的任何標記,但它似乎不起作用。我不確定是否是regex語法錯誤,因為我嘗試了更簡單的語法,例如'%[^0-9]%'只是為了測試,但也不起作用。有人知道我怎樣才能做到這一點嗎?
查看完整描述

3 回答

?
回首憶惘然

TA貢獻1847條經驗 獲得超11個贊

一般來說,SQLServer不支持正則表達式,您不能在本機T-SQL代碼中使用它們。

您可以編寫一個CLR函數來完成這個任務??匆?/trans>這里例如。


查看完整回答
反對 回復 2019-07-12
?
三國紛爭

TA貢獻1804條經驗 獲得超7個贊

使用Replace(Column, BadFoundCharacter, '')可能會更快。此外,與其僅僅替換下一列中找到的一個壞字符,不如替換所有已找到的字符。

WHILE 1 = 1 BEGIN
    UPDATE dbo.YourTable    SET Column = Replace(Column, Substring(Column, PatIndex('%[^0-9.-]%', Column), 1), '')
    WHERE Column LIKE '%[^0-9.-]%'
    If @@RowCount = 0 BREAK;END;

我相信這將比公認的答案更有效,這僅僅是因為它所做的操作較少。還有其他可能更快的方法,但我現在沒有時間去探索這些。


查看完整回答
反對 回復 2019-07-12
  • 3 回答
  • 0 關注
  • 590 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號