7
A
回答
8
您可以創建一個CLR
存儲過程來執行正則表達式替換。下面是關於該主題的文章: http://weblogs.sqlteam.com/jeffs/archive/2007/04/27/SQL-2005-Regular-Expression-Replace.aspx
然後,你可以做這樣的事情:
UPDATE your_table
SET col1 = dbo.RegExReplace(col1, '[^A-Za-z]','');
編輯: 由於CLR
是不是一種選擇,看看this環節,有一個dbo.RegexReplace
功能有它是用t-sql編寫的,而不是CLR。您可以使用該功能通過以下方式:
首先,你需要運行這個讓奧萊:
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Ole Automation Procedures', 1;
GO
RECONFIGURE;
GO
然後創建在我提供的鏈接中給出的dbo.RegexReplace
功能。
然後,你可以這樣做:
create table your_table(col1 varchar(500))
go
insert into your_table values ('aBCCa1234!!fAkk9943');
update your_table set col1 = dbo.RegexReplace('[^A-Za-z]','',col1,1,1);
select * from your_table
Result:
aBCCafAkk
1
你可以嘗試創建一個UDF(用戶定義函數),然後用它在查詢:
- http://www.sqlteam.com/article/regular-expressions-in-t-sql(使用COM)
- http://blogs.msdn.com/khen1234/archive/2005/05/11/416392.aspx(使用COM)
- http://msdn.microsoft.com/en-us/magazine/cc163473.aspx(使用CLR)
然後做類似的查詢:
SELECT * FROM myTable WHERE find_regular_expression(myCol, '[^a-zA-Z]')
它也出現在SQL Server中,肯定2008 R2的更高版本(主數據可能會有更多的原生支持,通過mdq.RegexMatches功能部件服務)。
http://msdn.microsoft.com/en-us/library/ee633829(SQL.105).aspx
+1
但是他需要替換匹配的模式,而不僅僅是找到它。 – dcp 2010-03-03 20:45:43
相關問題
- 1. 用空字符串替換非數字
- 2. 替換字符串中的所有非字母數字字符
- 3. 用空字符串替換非字母數字字符MYSQL
- 4. 將MSSQL中的所有非數字字符替換爲空字符串
- 5. 替換utf8中的所有非單詞字符字符串
- 6. 用新的UUID字符串替換所有的UUID字符串
- 7. 替換所有非單詞字符,如?* +#
- 8. 替換字符串中的所有字符不同的字符
- 9. - [R空字符串替換
- 10. 替換字符串中的所有非字母表
- 11. 字符串:用數字替換空格
- 12. 替換字符串的特殊字符爲空字符串
- 13. 替換所有空格字符
- 14. XSLT用空格替換非ASCII字符
- 15. 替換字符串的所有實例的字符串的Python
- 16. 替換字符串中的所有子字符串c#
- 17. 使用PHP替換字符串中的所有特殊字符
- 18. 替換字符串字符
- 19. 用字符串替換字符串java
- 20. 替換所有子字符串中
- 21. 替換所有出現的字符串
- 22. JavaScript字符串替換所有跨度
- 23. 替換所有的字符串出現
- 24. 將所有字符串值替換爲'
- 25. jquery如何替換所有字符串
- 26. 如何用星號替換字符串中的所有字符,空格除外?
- 27. Javascript:如何用空格替換字符串中的所有字符?
- 28. 在JSONArray中替換空字符串的所有空值
- 29. 替換非數字字符
- 30. TSQL替換使用子串替換替換字符串的其他部分
.NET CLR不是一個選項。不過謝謝。需要使用純SQL – 2010-03-03 20:46:18