我在包含这样的字符串的表中有列 - “执行作家的电子邮件是john.dio@pluto.com,ref @ 4567 ......”
我只需要从字符串中获取电子邮件。我一直在使用名为editpad pro的优秀软件轻松做到这一点,但现在我正在处理大约1000万条记录,并且没有编辑器支持这种音量。
如何在2008年编写T-SQL来选择正则表达式匹配值? 找到有效电子邮件的正则表达式是“\ b [A-Z0-9 ._%+ - ] * @ [A-Z0-9 .-] +。[A-Z] {2,4} \ b”
非常感谢。
答案 0 :(得分:3)
答案 1 :(得分:1)
SQL Server本身不支持正则表达式 - 您必须使用CLR功能来扩展SQL Server 2005+功能,例如正则表达式支持。 This link提供了可以部署的程序集,但大多数商店不允许使用CLR。
CHARINDEX可能会有所帮助,但PATINDEX有limited pattern matching support。
如果你需要获取一个值,你应该将它存储在它自己的列中而不是文本中的某个地方。
答案 2 :(得分:1)
我认为你可能会找到比tsql更有效的方法,但是如果这是你可以使用的工具,here's an article和一些使用tsql函数和ole自动化创建正则表达式支持的函数。{ / p>