我在尝试将遗留数据转换为新的正确结构化的SQL数据库。为了简单起见,可以说一个旧表包含两个字段,即Id和Emails。这里是一些数据。在SQL中处理&符和特殊字符
ID | Emails
0 [email protected], [email protected], [email protected]
1 [email protected]
我想带他们到新表所示:
INSERT INTO NewTable(Id, [Address])
Select t.Id, split.val
From OldTable t
Cross Apply dbo.Split(t.Emails, ',') split
WHERE t.Emails <> ''
这种运作良好,直到我碰到一个电子邮件:
ID | Emails
0 [email protected]
0 [email protected]
0 [email protected]
1 [email protected]
我可以用这个TSQL做到这一点那里有一个特殊的字符就像这样: 电子邮件@汤姆& jerry.com
的符号打破了查询,并引发以下错误:
消息9411,级别16,状态1,行3
XML分析:行1,字符27,分号预计
什么是最简单的方法绕过错误并将电子邮件映射到新表中:email @ tom & jerry.com
谢谢。
请用您正在使用的数据库版本标记您的问题。如果是SQL Server,你使用了什么'dbo.Split'实现? – HABO 2013-02-28 17:02:28